butcher-2014

Anthony Graca

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 #

  • p 9

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 #

  • p 49

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 #

  • p 85

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 #

  • p 115

More Object-Oriented than Objects #

Day 1: Messages and Mailboxes #

Day 2: Error Handling and Resilience #

Day 3: Distribution #

6. Communicating Sequential Processes #

  • p 153

Communication Is Everything #

Day 1: Channels and Go Blocks #

Day 2: Multiple Channels and IO #

Day 3: Client-Side CSP #

7. Data Parallelism #

  • p 189

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 #

  • p 223

Parallelism Enables Big Data #

Day 1: MapReduce #

Day 2: The Batch Layer #

Day 3: The Speed Layer #

9. Wrapping Up #

  • p 263

Next #