//
Search across all documentation pages
10 pages in this section.
Why Python has so many concurrency tools instead of one - threads, processes, subinterpreters, and free-threaded builds are different points on a single spectrum of how much memory gets shared and what enforces safety over it - the mental model behind every other page in this section.
Concurrency vs. parallelism and picking the right tool.
Processes, shared memory, and CPU-bound work.
`ThreadPoolExecutor`/`ProcessPoolExecutor` and `map`/`submit`.
`queue.Queue`, pipelines, and coordination.
A decision checklist: I/O-bound vs CPU-bound vs mixed.
Avoiding races, deadlocks, and shared mutable state.