标签:
资料来源:
多进程模式最大的优点就是定性高,因为一个子进程崩溃,不会影响主进程和其他子进程。(当然主进程挂了所有进程就全挂了,但是master进程只负责分配任务,挂掉的概率低),著名的Apache最早就是采用多进程模式。
多进程模式最大的缺点是创建进程的代价大,在Unix/Linux系统下,用fork调用就行,在Windows下创建进程开销巨大。另外,操作系统能同时运行的进程数也是有限的,在内存和CPU的限制下,如果有几千个进程同时运行,操作系统连调度都会成问题。
多线程模式通常比多进程快一点,但是也快不到哪去。
多线程模式致命的缺点就是,任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。
在Windows上,如果一个线程执行的代码出了问题,你经常可以看到这样的提示:“该程序执行了非法操作,即将关闭”,其实往往是某个线程出了问题,但是操作系统会强制结束整个进程。
在Windows下,多线程的效率比多进程要高,所以微软的IIS服务器默认采用多线程模式。由于多线程存在稳定性的问题,IIS的稳定性就不如Apache。为了缓解这个问题,IIS和Apache现在又有多进程+多线程的混合模式,真是把问题越搞越复杂。
标签:
原文地址:http://my.oschina.net/HIJAY/blog/479642