Concurrency: motivations for concurrent code; Amdahl’s law and the opportunity for language design. Challenges with concurrent code, including liveness, fairness, scalability. Threads and processes. Java Thread basics. The need for mutual exclusion. Monitors in Java: locks and synchronize, condition variables with wait() and notify().
Link: Slides
Homework
Try the exercise given at the end of the lecture slides. Sun’s tutorial on concurrency gives an introduction to the concurrency facilities provided in Java. Experimentation is essential: try the exercise and tutorial examples inside Netbeans or Eclipse and investigate the facilities for debugging concurrent code.
If you have any thoughts, problems or interesting pointers, please comment here!