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:
threading
— Thread-based parallelism
multiprocessing
— Process-based parallelismProcess
and exceptionsctypes
Objects
multiprocessing.dummy
moduleconcurrent
packageconcurrent.futures
— Launching parallel tasks
subprocess
— Subprocess management
sched
— Event scheduler
queue
— A synchronized queue class
The following are support modules for some of the above services: