进程VS.线程

资料来源:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001397567993007df355a3394da48f0bf14960f0c78753f000

1、Apache最早就是采用多进程模式

2、IIS服务器默认采用多线程模式

3、多进程优缺点

优点:

多进程模式最大的优点就是定性高,因为一个子进程崩溃,不会影响主进程和其他子进程。(当然主进程挂了所有进程就全挂了,但是master进程只负责分配任务,挂掉的概率低),著名的Apache最早就是采用多进程模式。

缺点:

多进程模式最大的缺点是创建进程的代价大,在Unix/Linux系统下,用fork调用就行,在Windows下创建进程开销巨大。另外,操作系统能同时运行的进程数也是有限的,在内存和CPU的限制下,如果有几千个进程同时运行,操作系统连调度都会成问题。

4、多线程的优缺点

多线程模式通常比多进程快一点,但是也快不到哪去。

缺点:

多线程模式致命的缺点就是,任何一个线程挂掉都可能直接造成整个进程崩溃,因为所有线程共享进程的内存。

在Windows上,如果一个线程执行的代码出了问题,你经常可以看到这样的提示:“该程序执行了非法操作,即将关闭”,其实往往是某个线程出了问题,但是操作系统会强制结束整个进程。

在Windows下,多线程的效率比多进程要高,所以微软的IIS服务器默认采用多线程模式。由于多线程存在稳定性的问题,IIS的稳定性就不如Apache。为了缓解这个问题,IIS和Apache现在又有多进程+多线程的混合模式,真是把问题越搞越复杂。

http://m.oschina.net/blog/479642

相关推荐