The multiprocessing module creates and manages child processes for concurrent and parallel execution. Each process has its own Python interpreter and global interpreter lock, allowing CPU-bound work to use multiple CPU cores effectively. section 6.0 section 6.1
Create a Process with a target function and argument tuple, call start to begin it, then call join so the parent waits for completion. Unlike threads, processes avoid having one interpreter’s GIL prevent parallel Python bytecode execution. section 6.1 section 1.4.2
Running two CPU-bound functions
A counting function runs in two child processes, one counting to 100,000,000 and the other to 200,000,000. Starting both before joining lets their work overlap; the parent then waits for both and reports total elapsed time.
