Lecture 19: Cautionary Tales in Concurrency

Three topics demonstrating challenges in concurrency. Complex lock manipulation: reentrant locks, nested locks, and fine-grained locking (hand-over-hand) with linked-lists.
Scheduling: thread priorities, pre-emption, the priority inversion problem and priority inheritance as a solution. Relaxed (aka weak) memory models: the Java Memory Model and its guarantees for programmers and compiler writers; examples of behaviours possible with racy programs.

Comments are closed.