Seven Concurrency Models in Seven Weeks: When Threads Unravel

Aleksandr Shitik
Aleksandr Shitik

I write my own posts and books, and review movies and books. Expert in cosmology and astronomy, IT, productivity, and planning.

Seven Concurrency Models in Seven Weeks: When Threads Unravel
Paul Butcher
Genres: Programming
Year of publication: 2015
Year of reading: 2025
My rating: Good
Number of reads: 1
Total pages: 346
Summary (pages): 10
Original language of publication: English
Translations to other languages: Russian

General Description

The book spans 350 pages. In addition to text, it contains code snippets and images where prose alone would fall short. At the end of each chapter you’ll find a summary of the material, study assignments and practical exercises. I found the book’s material challenging in places.

Introduction

Aside from the opening and closing chapters, the book consists of 7 chapters, each split into 3 themes. Every theme deepens and complements its predecessor. The chapters themselves typically introduce entirely new, independent technologies.

Chapter 2. Execution flows and locks

  • Day 1: Mutual exclusion and memory models
  • Day 2: Beyond built‑in locks
  • Day 3: On the shoulders of giants

Chapter 3. Functional programming

  • Day 1: Programming without mutable state
  • Day 2: Functional parallelism
  • Day 3: Functional competition

Chapter 4. The Clojure path – separating identity and state

  • Day 1: Atoms and persistent data structures
  • Day 2: Agents and software transactional memory
  • Day 3: Diving deep

Chapter 5. Actors

  • Day 1: Messages and mailboxes
  • Day 2: Error handling and fault tolerance
  • Day 3: Distributed applications

Chapter 6. Coordination of sequential processes

  • Day 1: Channels and do‑blocks
  • Day 2: Multiple channels and I/O
  • Day 3: CSP model on the client side

Chapter 7. Data parallelism

  • Day 1: GPGPU programming
  • Day 2: Dimensionality and workgroups
  • Day 3: OpenCL and OpenGL — store data on the GPU

Chapter 8. Lambda architecture

  • Day 1: MapReduce
  • Day 2: Batch layer
  • Day 3: Speed layer

Opinion

This book was intended to be read slowly, but I approached it like any other read. I didn’t complete the practical assignments nor study extra material, so some topics seemed particularly tough. Moreover, the book focuses on rather specialized languages and technologies—Clojure and Erlang—which aren’t familiar to the average developer. That said, get ready for a non‑trivial read; on the bright side, the book is both informative and engaging.

Вверх