Citation #
@book{butcher2014seven,
title={Seven Concurrency Models in Seven Weeks: When Threads Unravel},
author={Butcher, Paul},
year={2014},
publisher={The Pragmatic Bookshelf}
}
Summary. What are the statements being made? #
1. Introduction #
Concurrent or Parallel? #
- Concurrent and parallel refer to two related but different things
Parallel Architecture #
Concurrency: Beyond Multiple Cores #
The Seven Models #
2. Threads and Locks #
The Simplest Thing that Could Possibly Work #
Day 1: Mutual Exclusion and Memory Models #
Day 2: Beyond Intrinsic Locks #
Day 3: On the Shoulders of Giants #
3. Functional Programming #
If it Hurts, Stop Doing It #
Day 1: Programming Without Mutable State #
Day 2: Functional Parallelism #
Day 3: Functional Concurrency #
4. The Clojure Way - Separating Identity from State #
The Best of Both Worlds #
Day 1: Atoms and Persistent Data Structures #
Day 2: Agents and Software Transactional memory #
Day 3: In Depth #
5. Actors #
More Object-Oriented than Objects #
Day 1: Messages and Mailboxes #
Day 2: Error Handling and Resilience #
Day 3: Distribution #
6. Communicating Sequential Processes #
Communication Is Everything #
Day 1: Channels and Go Blocks #
Day 2: Multiple Channels and IO #
Day 3: Client-Side CSP #
7. Data Parallelism #
The Supercomputer Hidden in Your Laptop #
Day 1: GPGPU Programming #
Day 2: multiple Dimensions and Work-Groups #
Day 3: OpenCL and OpenGL - Keeping it on the GPU #
8. The Lambda Architecture #
Parallelism Enables Big Data #
Day 1: MapReduce #
Day 2: The Batch Layer #
Day 3: The Speed Layer #
9. Wrapping Up #
Next #