Understanding the Python Global Interpreter Lock (GIL)