"Paul Boddie" <[EMAIL PROTECTED]> 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. -- http://mail.python.org/mailman/listinfo/python-list