title: Does GIL make the Python Interpreter single threaded or your python code single threaded
body: <p>So I have been reading about the GIL but I haven't been able to make a certain subtle distinction. Is the Python interpreter (C process) single threaded itself when it is holding the GIL or can the interpreter be multithreaded (utilizing multiple cores, not the Python threading notion) but can only interpret one user level python thread at a time. </p>
  
  <p>I am thinking about this because I am wondering if a C extension written in Cython did not release the GIL but utilized multiple threads would those threads be able to run on different cores? It seems if the user python program was single threaded and called on the Cython code for some long running operation the Cython code could be run on multiple cores without releasing the GIL (assuming no python interaction). Would it only be important for the Cython code to release the GIL in case the Python code calling on it was multithreaded so that other Python threads could be executed in the meantime by the interpreter while the Cython operation is being run on other cores? </p>