Why are numpy calculations not affected by the global interpreter lock? : <p>I'm trying to decide if I should use multiprocessing or threading, and I've learned some interesting bits about the <a href="https://wiki.python.org/moin/GlobalInterpreterLock" rel="noreferrer">Global Interpreter Lock</a>. In this nice <a href="http://nathangrigg.net/2015/04/python-threading-vs-processes/" rel="noreferrer">blog post</a>, 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.</p>

<p>Can anyone explain why, and how I can find out if my (probably quite numpy-heavy) code is going to be suitable for multithreading?</p>
