Angels and Demons of Multithreaded Programming
summary
Explains differences between locking-based and nonblocking (compare-and-swap style) synchronization for multithreaded programs on multi-core processors. Covers pros and cons of each approach and common pitfalls such as deadlock, livelock, starvation, and issues around mutable versus immutable designs.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 4:21Bank account problem
- 7:51Dining philosophers problem
- 12:03Deadlock conditions
- 15:13Deadlock avoidance strategies
- 20:55Resource numbering
- 24:04Starvation problem
- 26:55Livelock problem
- 28:00Distributed locks
- 29:27Modern approaches
- 31:57Further reading
- 32:59Q&A
related talks
52mSTM and Structured Concurrency — The Battle with Multithreading Dragons
01h 14mMultithreading in UI application: When some threads are more equal than others
39mLet's talk concurrency
59mAn Introduction to Multithreading in C++20
47m“Multithreading is the answer. What is the question? (part 1 of 2)”
50m“Multithreading is the answer. What is the question? (part 2 of 2)”
01h 01mMultithreading vs Asynchronous Programming: The Architectural Shift
48mHandling concurrent access to shared resources in Java
