There was no significant performance difference between using threading vs multiprocessing. The performance between multithreading and multiprocessing are extremely similar and the exact performance details are likely to depend on your specific application.
So when you use multi-threading (multiple threads in one process), you'll see no performance boost from having 2, 4 or 8 CPUs / cores. Multi-processing is different. In multi-processing, multiple separate Python processes are used (with one thread per process) and each process has its own separate GIL.
Multithreading refers to the ability of a processor to execute multiple threads concurrently, where each thread runs a process. Multiprocessing refers to the ability of a system to run multiple processors in parallel, where each processor can run one or more threads. Multithreading vs. Multiprocessing illustration. | Image by author
Multi-threading allows multiple threads to execute concurrently within the same process. This is useful when there is a lot of I/O bound work, such as waiting for user input or network communication. On the other hand, multi-processing allows multiple processes to execute in parallel on different CPU cores.
w9xwNQL.