I saw one answer telling us that multi processes are slower than threads because of context switching. I have to say it is not true because, at least on Solaris but surely on other UNIX systems, threads and processes are considered the same from the scheduler point of view. The real difference is that threads share all the memory and they are faster to start. <p>What made the big difference is the synchonous mecanism used: mutex, semaphore, critical region, swap instruction available on some processors (very fast on i86 or UltraSparc)<p>
We should not forget that the thread pattern is usually easier to program and should scale better on multiprocessors systems.