Today’s lecture reviewed the built-in Java concurrency primitives, the challenges of writing thread-safe code, and patterns that may help with that: immutability, synchronization wrappers, and control abstractions like producer/consumer. More high-level concurrency abstractions, such as those in the
java.util.concurrent package, support programming that is not only thread-safe but takes distinct advantage of concurrency to increase performance and responsiveness.
There were also announcements about the course web pages, Facebook page and Twitter feed; and a walk through some intentionally racy code in the source for the standard Java
Link: Slides for Lecture 3
Before the next lecture:
- Read the remaining sections of the Java Concurrency Tutorial.
To understand more about the meaning and effect of the
volatile keyword, Silver Taza recommends the Javamex tutorial.
Brian Goetz, Time Peierls, Joshua Block, Joseph Bowbeer, David Holmes and Doug Lea. Java Concurrency In Practice. Addison-Wesley, 2006.
The current standard reference for concurrent Java programming.
Doug Lea. Concurrent Programming in Java: Design Principles and Patterns. Second Edition. Addison-Wesley, 1999.
The original text describing many of the patterns now implemented inside