On Thu, Feb 9, 2012 at 11:19 AM, Matt Joiner <anacrolix@gmail.com> wrote:
The GIL annoys those who have learned to expect threading.Thread for CPU bound concurrency in advance -- which typically means prior experience with Java. Python threads are fine for their intended use -- e.g. I/O and background tasks in a GUI.
Even for that purpose they're too heavy. The GIL conflicts, and boilerplate overhead spawning threads is obscene for more than trivial cases.
I'd actually say that using OS threads is too heavy *specifically* for trivial cases. If you spawn a thread to add two numbers you'll have a huge overhead. If you spawn a thread to do something significant, the overhead doesn't matter much. Note that even in Java, everyone uses thread pools to reduce thread creation overhead. -- --Guido van Rossum (python.org/~guido)