History of Concurrency
summary
Argues that core concurrency ideas come from the 1960s–70s (mutexes and semaphores in 1965, CSP in 1978) and shows concrete implementations: an 1980s transputer that scales by adding cards but fails commercially due to a special OS and language and high cost; Go and Erlang run lightweight processes scheduled onto OS threads and actually work in production; Rust enforces safe sharing with ownership tracking; and software transactional memory gives commit/rollback semantics for memory at a measurable performance cost.
AI-written summary · about
chapters (26)
- 0:00What is concurrency
- 2:13Concurrency vs Parallel
- 3:46Sometimes concurrency matter
- 4:55Why learn about concurrency
- 5:39Hardware talk
- 7:16History of concurrency
- 9:17When was concurrency invented
- 10:52Three concepts
- 11:03Primitives vs models
- 12:17Patterns
- 12:49Primitives
- 13:39Monitors
- 15:36Task Schedule
- 15:55Preemptive vs Cooperative
- 21:02Preemptive concurrency
- 22:08Imprinted processes
- 23:16Event group
- 23:45Shared memory
- 26:51CSP
- 29:12Acha
- 30:01Concurrency Concepts
- 30:16Modern Concurrency
- 34:54Haskell
- 35:11Other Questions
- 37:19Future of concurrency
- 39:14Questions
related talks
49mThinking in a Highly Concurrent, Mostly-functional Language
01h 04mA Pattern Language for Expressing Concurrency in Cpp
55mC++ Concurrency TS 2 Use Cases and Future Direction
38mAccidentally Concurrent
22mConcurrency Models Demystified
55mBehavioral Modeling in HW/SW Co-design Using C++ Coroutines
53mYou Keep Using That Word: Asynchronous And Interprocess Comms
53mAsync sequences and algorithms to compose them
