進程VS.線程-筆記

資料來源:服務器

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

一、Apache最先就是採用多進程模式

二、IIS服務器默認採用多線程模式

三、多進程優缺點

優勢:

多進程模式最大的優勢就是定性高,由於一個子進程崩潰,不會影響主進程和其餘子進程。(固然主進程掛了全部進程就全掛了,可是master進程只負責分配任務,掛掉的機率低),著名的Apache最先就是採用多進程模式。spa

缺點:

多進程模式最大的缺點是建立進程的代價大,在Unix/Linux系統下,用fork調用就行,在Windows下建立進程開銷巨大。另外,操做系統能同時運行的進程數也是有限的,在內存和CPU的限制下,若是有幾千個進程同時運行,操做系統連調度都會成問題。
操作系統

四、多線程的優缺點

多線程模式一般比多進程快一點,可是也快不到哪去。線程

缺點:

多線程模式致命的缺點就是,任何一個線程掛掉均可能直接形成整個進程崩潰,由於全部線程共享進程的內存。進程

在Windows上,若是一個線程執行的代碼出了問題,你常常能夠看到這樣的提示:「該程序執行了非法操做,即將關閉」,其實每每是某個線程出了問題,可是操做系統會強制結束整個進程。內存

在Windows下,多線程的效率比多進程要高,因此微軟的IIS服務器默認採用多線程模式。因爲多線程存在穩定性的問題,IIS的穩定性就不如Apache。爲了緩解這個問題,IIS和Apache如今又有多進程+多線程的混合模式,真是把問題越搞越複雜。get

相關文章
相關標籤/搜索