On Apr 25, 2010, at 11:56 PM, Joe Holloway wrote:

> Hey guys,
> 
>>> * Python still has the Global interpreter lock that prevents more than
>>> one thread from executing Python code at a time.  This means that
>>> thread based concurrency is not an option for Python.  IOW, we can't
>>> use multiple threads that talk using OMQ.  So, we have to use
>>> processes.  I don't like that, but maybe it is OK...
>> 
>> Well, it's deficiency of Python. Hopefuly Python developers would
>> address the issue in the future.
>> 
>> Btw, maybe it would be worth poking them a little by asking about the
>> behaviour on python dev mailing list...
> 
> Probably preaching to the choir, but the GIL is only a limitation of
> the CPython runtime.  There are other (albeit less mature) Python
> implementations that are not necessarily affected by the GIL, e.g.
> Jython, IronPython, Stackless, PyPy, et al.  Also, there's the Google
> sponsored "Unladen Swallow" project that aims to reinvent the CPython
> runtime so as to improve performance and remove the GIL.

I personally think the GIL is more of a blessing than a curse, as it allows 
Python to quickly integrate with C-extensions.

>From your list:

Stackless and PyPy do in fact have a GIL.

Jython doesn't because it makes use of the Java environment but this also means 
that you cannot use C extensions. If you want to use Jython and ZMQ you should 
look at at the Java bindings.

IronPython runs on Mono and does indeed not have a GIL, but again C extensions 
with IronPython are problematic. You could try IronClad but i suspect this will 
increase the latency.

Concerning Unladen Swallow, they are no longer optimistic about removing the 
Python GIL, see here for more info: 
http://code.google.com/p/unladen-swallow/wiki/ProjectPlan#Global_Interpreter_Lock


Cheers,
Nicholas Piël
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to