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 parallelismactive_count()current_thread()get_ident()enumerate()main_thread()settrace()setprofile()stack_size()TIMEOUT_MAX- 17.1.1. Thread-Local Data
- 17.1.2. Thread Objects
- 17.1.3. Lock Objects
- 17.1.4. RLock Objects
- 17.1.5. Condition Objects
- 17.1.6. Semaphore Objects
- 17.1.7. Event Objects
- 17.1.8. Timer Objects
- 17.1.9. Barrier Objects
- 17.1.10. Using locks, conditions, and semaphores in the
withstatement
- 17.2.
multiprocessing— Process-based parallelism- 17.2.1. Introduction
- 17.2.2. Reference
- 17.2.2.1.
Processand 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
ctypesObjects - 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.dummymodule
- 17.2.2.1.
- 17.2.3. Programming guidelines
- 17.2.4. Examples
- 17.3. The
concurrentpackage - 17.4.
concurrent.futures— Launching parallel tasks - 17.5.
subprocess— Subprocess management- 17.5.1. Using the
subprocessModule - 17.5.2. Security Considerations
- 17.5.3. Popen Objects
- 17.5.4. Windows Popen Helpers
- 17.5.5. Older high-level API
- 17.5.6. Replacing Older Functions with the
subprocessModule - 17.5.7. Legacy Shell Invocation Functions
- 17.5.8. Notes
- 17.5.1. Using the
- 17.6.
sched— Event scheduler - 17.7.
queue— A synchronized queue class
The following are support modules for some of the above services:
