The Global Interpreter Lock (GIL) simplifies Python memory management but restricts how effectively multiple threads use CPU cores. Threading can therefore add complexity without improving performance. section 7.2.2
Parallel bootstrap becomes slower
A bootstrap confidence-interval function was parallelized with 16 threads, yet execution became considerably slower. The workload used only 1.5% of available processing power, so thread overhead and the GIL outweighed any benefit. section 7.2.2




