资料来源:服务器
多进程模式最大的优势就是定性高,由于一个子进程崩溃,不会影响主进程和其余子进程。(固然主进程挂了全部进程就全挂了,可是master进程只负责分配任务,挂掉的几率低),著名的Apache最先就是采用多进程模式。spa
多进程模式最大的缺点是建立进程的代价大,在Unix/Linux系统下,用fork调用就行,在Windows下建立进程开销巨大。另外,操做系统能同时运行的进程数也是有限的,在内存和CPU的限制下,若是有几千个进程同时运行,操做系统连调度都会成问题。
操作系统
多线程模式一般比多进程快一点,可是也快不到哪去。线程
多线程模式致命的缺点就是,任何一个线程挂掉均可能直接形成整个进程崩溃,由于全部线程共享进程的内存。进程
在Windows上,若是一个线程执行的代码出了问题,你常常能够看到这样的提示:“该程序执行了非法操做,即将关闭”,其实每每是某个线程出了问题,可是操做系统会强制结束整个进程。内存
在Windows下,多线程的效率比多进程要高,因此微软的IIS服务器默认采用多线程模式。因为多线程存在稳定性的问题,IIS的稳定性就不如Apache。为了缓解这个问题,IIS和Apache如今又有多进程+多线程的混合模式,真是把问题越搞越复杂。get