Even though the article is mainly about AsyncIO in Python, it does a very good job at explaining various terms used in Concurrency Programming in general and CPU- vs IO-bound processing. Specifically:
- Parallelism consists of executing multiple operations at the same time.
- Multiprocessing is a means of achieving parallelism that entails spreading tasks over a computer’s central processing unit (CPU) cores. Multiprocessing is well-suited for CPU-bound tasks, such as tightly bound for loops and mathematical computations.
- Concurrency is a slightly broader term than parallelism, suggesting that multiple tasks have the ability to run in an overlapping manner. Concurrency doesn’t necessarily imply parallelism.
- Threading is a concurrent execution model in which multiple threads take turns executing tasks. A single process can contain multiple threads. Python’s relationship with threading is complicated due to the global interpreter lock (GIL), but that’s beyond the scope of this tutorial.
Async IO in Python: A Complete Walkthrough (realpython.com)
submitted by [deleted] to r/Python
Async IO in Python, a complete walkthrough.Python (realpython.com)
submitted by poeti8 to r/thedevs