Why are numpy calculations not affected by the global interpreter lock?
I'm trying to decide if I should use multiprocessing or threading, and I've learned some interesting bits about the Global Interpreter Lock . In this nice blog post , it seems multithreading isn't suitable for busy tasks. However, I also learned that some functionality, such as I/O or numpy, is unaffected by the GIL. Can anyone explain why, and how I can find out if my (probably quite numpy-heavy) code is going to be suitable for multithreading? mfitzp Many numpy calculations are unaffected by the GIL, but not all. While in code that does not require the Python interpreter (e.g. C libraries)