Mainor 2022. Java Concurrency, Part 2
Channel: Ivan Ponomarev
Date: 2022-06-01

Concurrency is perhaps the most complex field of programming. It requires a knowledge of multiple fundamental principles, like Memory Model, intrinsic locks and conditions and correct ways of using them, etc., which is difficult to self-teach.  In the second lecture we cover deadlocks, thread-safe data structures, thread pools and collaborative termination. We use a tool called JCStress to demonstrate the non-deterministic behaviour of concurrent programs and to see what valid or invalid outcomes they can produce. At the end, using all the acquired knowledge, we try to build a thread-safe lazy singleton and test it with JCStress.

Tallinn, May 23rd 2022. 

Slides: 

https://inponomarev.github.io/java-mipt/slides10/index-en.html#/

https://inponomarev.github.io/java-mipt/slides11/index-en.html#/