Concurrency

What goes wrong when threads share memory: the explosion of interleavings, the races they hide, and the locks, condition variables, and invariants that hold a shared state together.

Explainers