[Python-Dev] Re: Threading in the Standard Library Tour Part II (original) (raw)

Mike Coleman mkc at mathdogs.com
Mon Aug 23 01:57:20 CEST 2004


"Stephen J. Turnbull" <stephen at xemacs.org> writes:

>>>>> "Raymond" == Raymond Hettinger <python at rcn.com> writes: Raymond> Also, multiple processors cannot boost performance Raymond> because Python's Global Interpreter Lock (GIL) precludes Raymond> more than one thread from running in the interpreter at Raymond> the same time (this was done to simplify re-entrancy Raymond> issues).

This confused me because "running" is ambiguous. How about something like: The Python interpreter itself is not fully reentrant, so threading is accomplished by interleaving the execution of Python code from different threads. Thus, use of multiple processors cannot boost performance of threaded Python code, because a single instance of the interpreter can only execute code on one processor at a time. (Season to taste, fix technical inaccuracies.) I see no reason to mention the GIL, an implementation detail, at all.

I somewhat prefer Raymond's version, myself. As soon as I read "execute code on one processor at a time", I immediately want to ask "Why?". The mention of the GIL more or less answers this, depending on how much you know about interpreters.

Mike



More information about the Python-Dev mailing list