Thinking Outside the Synchronisation Quadrant
summary
Argues that concurrency is not just locks but a 2×2 state/ownership model (the synchronisation quadrant is only one corner) and shows concrete alternatives: immutability, futures/promises, message channels, actors and pipelines. Implements a bounded queue and blocking/non‑blocking receives in C++ and demos a prime‑sieve pipeline and a channel‑based fizzbuzz in Go and Erlang‑style actors for a phonebook. Notes costs: syscalls and context switches are expensive, adding threads can slow things, and a 235× claim compares CLI vs Hadoop to stress local‑memory choices.
AI-written summary · about
chapters (24)
- 0:00Introduction
- 1:33Defining Architecture
- 5:55The Synchronization Quadrant
- 10:45Immutability Changes Everything
- 13:40Functional and Operational Aspects
- 17:02The Cost of Concurrency
- 19:40Tasks and Parallelism
- 22:50Coordination Costs
- 25:20Modern Approaches in C++
- 29:15Simplicity and Correctness
- 32:34Deadlock and Habitability
- 35:59Testability as a Proxy
- 40:20Unit Test Definition
- 43:31Reasoning about State
- 46:32Message Passing and Futures
- 52:10Designing Safe Queues
- 58:07Channels and Bounding
- 1:01:06Pipes and Filters
- 1:05:45Assignment as Communication
- 1:10:02Concrete Examples
- 1:15:43Prime Sieve Example
- 1:18:03Actors and Active Objects
- 1:24:08The Actor Model in Erlang
- 1:27:13Conclusion
related talks
01h 08mThinking Outside the Synchronisation Quadrant
39mLet's talk concurrency
54mDesigning for Concurrency Using Message Passing in C++
35mCommunicating Sequential Processes
01h 08mBetter Code: Concurrency
01h 01mRoundtable: Concurrency
01h 16mDesigning for C++ Concurrency Using Message Passing
30mCONQUERING CONCURRENCY WITH FUNCTIONAL PROGRAMMING
