## 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)