multithreading concept

Paul Rubin http
Thu Mar 8 16:25:46 EST 2007


"Paul Boddie" <paul at boddie.org.uk> writes:
> What makes all of the following not "Pythonic"...?
> http://wiki.python.org/moin/ParallelProcessing

I'd say mainly that they don't allow sharing data between processes
except through expensive IPC mechanisms involving system calls.

> I'm sure one could define "Pythonic" as being "you can write
> code like you do now (but not like any of the ways encouraged by the
> aforementioned solutions) and it just works over multiple processors/
> cores", but that's a view which is somewhat detached from the
> practicalities (and favoured practices) of concurrent programming,
> especially given the few guarantees Python would be able to provide to
> make such a thing work effectively.

Really, the existence of the GIL comes as an unpleasant surprise to
progrmamers used to multi-threaded programming in other languages
whose synchronization features outwardly look about the same as
Python's.  Somehow those other languages manage to use multiple CPU's
based on those features, without needing a GIL.  We are looking at a
Python implementation wart, not "practicalities" inherent in the
nature of concurrency.



More information about the Python-list mailing list