17. Concurrent Execution
The modules described in this chapter provide support for concurrent execution of code. The appropriate choice of tool will depend on the task to be executed (CPU bound vs IO bound) and preferred style of development (event driven cooperative multitasking vs preemptive multitasking). Here’s an overview:
- 17.1. threading — Thread-based parallelism
- 17.2. multiprocessing — Process-based parallelism
- 17.2.1. Introduction
- 17.2.2. Reference
- 17.2.2.1. Process and exceptions
- 17.2.2.2. Pipes and Queues
- 17.2.2.3. Miscellaneous
- 17.2.2.4. Connection Objects
- 17.2.2.5. Synchronization primitives
- 17.2.2.6. Shared ctypes Objects
- 17.2.2.7. Managers
- 17.2.2.8. Proxy Objects
- 17.2.2.9. Process Pools
- 17.2.2.10. Listeners and Clients
- 17.2.2.11. Authentication keys
- 17.2.2.12. Logging
- 17.2.2.13. The multiprocessing.dummy module
- 17.2.3. Programming guidelines
- 17.2.4. Examples
- 17.3. The concurrent package
- 17.4. concurrent.futures — Launching parallel tasks
- 17.5. subprocess — Subprocess management
- 17.6. sched — Event scheduler
- 17.7. queue — A synchronized queue class
- 17.8. select — Waiting for I/O completion
The following are support modules for some of the above services: