title: Using the GIL as a thread pool
body: <p>Note: My education on this topic is lacking, so I may be making some naive assumptions.</p>
  
  <p>Assume you have a function performing blocking I/O. You need to run this function n times.</p>
  
  <p>If you were to simply spawn n threads (using the threading module) and start them at the same time, would it work to simply use the GIL to manage the threads (based on I/O) as opposed to using the multiprocessing.pool module to manage subprocesses?</p>