[Python-Dev] Threading in the Standard Library Tour Part II (original) (raw)
Bob Ippolito bob at redivi.com
Mon Aug 16 05:44:23 CEST 2004
- Previous message: [Python-Dev] Threading in the Standard Library Tour Part II
- Next message: [Python-Dev] Threading in the Standard Library Tour Part II
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Aug 15, 2004, at 11:38 PM, Stephen J. Turnbull wrote:
"Raymond" == Raymond Hettinger <python at rcn.com> writes: Raymond> Threading is a technique for decoupling tasks which are Raymond> not sequentially dependent and creating the illusion of Raymond> concurrency. All simultaneity is an illusion, but the concurrency of Python threads is not. 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 think it's worth mentioning. It's absolutely necessary to know all about the GIL when writing an extension that can take advantage of threading or embed Python correctly in a threaded application.
-bob
- Previous message: [Python-Dev] Threading in the Standard Library Tour Part II
- Next message: [Python-Dev] Threading in the Standard Library Tour Part II
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]