Open
Description
It would help to have a place where the various approaches to concurrency in Python are explained and compared. It would be especially useful to enumerate the most common concurrency-oriented workloads and show how to implement them using the different concurrency models.
I expect we would cover the following concurrency models:
- threads (
threading
andconcurrent.futures
) - multi-processing (
multiprocessing
andconcurrent.futures
) - async/await
- CSP/actor model (PEP 734
interpreters
) - distributed (e.g. SMP/dask)
Other related resources:
- https://github.com/faster-cpython/ideas/wiki/Tables:-Workloads
- https://github.com/faster-cpython/ideas/wiki/All-About-Python-Benchmarking
- https://github.com/ericsnowcurrently/concurrency-benchmarks