[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