On Mon, Jul 26, 2010 at 12:02 PM, Michael Foord <fuzzyman@voidspace.org.uk> wrote:
On 26/07/2010 04:42, Guido van Rossum wrote:
On Sun, Jul 25, 2010 at 8:31 PM, Peter Portante <peter.a.portante@gmail.com> wrote:
FWIW: We use Python at Tabblo, straddled across Python 2.5.4 and 2.6.5. They work. And they work well. But we make light use of threads (mostly background I/O handling), and heavy use of multiple processes because we can't take advantage of our multi-core systems otherwise.
Isn't this an indication that the GIL is, in fact, not (much of) a problem?
I wish those trying to get rid of the GIL well. But it may not be the panacea some folks are hoping for. Multi-threaded programming remains hard (and removing the GIL might actually make it harder).
Jython and IronPython don't have a GIL, and I think PyPy may not either. Does anyone have experience with GIL-free programming in one of those?
Oh, and PyPy does have a GIL but the developers say it wouldn't be a huge amount of work to remove it.
It wouldn't be as huge as on CPython, since we don't have reference counting, but it's still *a lot* of work and someone would have to step and take this task (since none core pypy dev is that interested in that).
Presumably they would have to add locking in the right places - which would then impact performance. As PyPy doesn't use reference counting adding locking shouldn't impact performance as much as previous attempts with CPython have.
That's one thing but the other thing is that JIT can remove a lot of locks (like it does no JVM), but that's yet another batch of work to be done. Cheers, fijal