[Python-3000] An impassioned plea for true multithreading
Giovanni Bajo
rasky at develer.com
Wed Jun 27 11:26:59 CEST 2007
On 26/06/2007 20.47, Chris Spencer wrote:
> 1. Most people who bought a computer in the past year bought a
> dual-core processor with it. Quad-cores are going to take over the
> market in 2008. To not be able to take advantage of these extra cores
> is an inherent language disadvantage. Yes, you can run more than one
> process and do some sort of IPC, but it requires a lot more work for
> the coder and a lot more complexity in the code (ie more bugs).
In my experience, it's multi-threading that gives you endless bugs without any
hope of getting debugged and fixed. Multi-processing (carefully coupled with
event-based programming) instead gives you a solid program
with small parts which can be run and tested invididually.
In fact, I am *happy* that Python does not have true multithreading: this
forces people to design programs the right way from the beginning (unless you
want the typical quick, non-performance-sensitive, fast-hack thread, and in
that case Python's multithreading with GIL is more than enough).
So please don't say that Python isn't able to exploit quad-cores: it's a false
statement. On the contrary: it lets you use them CORRECTLY, without shared
memory issues.
Have a look at the package called "processing" in PyPI. You might find it
interesting.
--
Giovanni Bajo
More information about the Python-3000
mailing list