## TL;DR

Concurrency models handle multiple simultaneous computations. Threads (shared memory, mutexes), CSP/Actors (message passing, no shared state), async/await (cooperative multitasking), SIMD/GPU (data-parallel). Key challenges: race conditions, deadlocks, livelocks, starvation. Amdahl's Law limits parallel speedup.

## Core Explanation

Mutex (mutual exclusion): only one thread in critical section. Semaphore: counting mutex. Deadlock: A waits for B, B waits for A — four conditions (mutual exclusion, hold-and-wait, no preemption, circular wait). Actor model (Erlang, Akka): independent actors communicate via messages, no shared state — eliminates data races. Go goroutines + channels implement CSP.

## Further Reading

- [undefined](undefined)