Threads vs subprocesses

John O'Hagan research at johnohagan.com
Fri Jun 15 13:24:13 EDT 2012


On Fri, 15 Jun 2012 11:51:01 -0400
Dave Angel <d at davea.name> wrote:

> On 06/15/2012 09:49 AM, John O'Hagan wrote:
> > I have a program in which the main thread launches a number of CPU-intensive
> > worker threads. For each worker thread two python subprocesses are started,
[...]
> >
> > So far so good, but it occurred to me that instead of launching all these
> > worker threads, I could just put their target code in separate executable
> > files and launch them as subprocesses. That way there would be fewer
> > threads, but each subprocess would be doing more work. 
> >
> > My question is, on a single core machine, what are the pros and cons of
> > threads vs subprocesses in a setup like this? 
> >
[...]
> 
> Two key phrases in your message;   CPU-intensive,  
> single-core-machine.  If these have the conventional meaning, you're
> better off doing all the processing in your main executable, without
> threads at all.
> 
> Neither threads nor separate process speed up CPU-intensive execution on
> a single-core machine.
[...]

I should have made it clear that I'm not using threads to speed anything up;
each thread produces an independently controlled, timed stream of musical
events. I think it would be hard to achieve that in a single process. The
streams need to run simultaneously without getting out of sync or dropping
notes, which begins to happen if there are a lot of them, or they are run very
fast or are very calculation-intensive to produce. 

So I guess what I'm really asking is, given that I need to use threads or
subprocesses, which approach slows the processing down the least?


John



More information about the Python-list mailing list