一、多進程 多進程方式是指,伺服器在接收到一個客戶端請求時,就由伺服器主進程生成一個子進程出來和該客戶端進行交互,直到連接斷開,該子進程就結束了。 優點:設計和實現相對簡單,各個子進程之間相互獨立,處理客戶端的請求彼此不會受到干擾,並且當一個子進程產生問題時,不容易將影響蔓延到其他進程中,這保證了提 ...
一、多進程
多進程方式是指,伺服器在接收到一個客戶端請求時,就由伺服器主進程生成一個子進程出來和該客戶端進行交互,直到連接斷開,該子進程就結束了。
優點:設計和實現相對簡單,各個子進程之間相互獨立,處理客戶端的請求彼此不會受到干擾,並且當一個子進程產生問題時,不容易將影響蔓延到其他進程中,這保證了提供服務的穩定性。
當子進程退出時,其占用的資源會被操作系統回收,也不會留下任何垃圾。
缺點:操作系統生成一個子進程需要進行記憶體複製等操作,彼此進程記憶體獨立,在資源和時間上會產生額外開銷,因此如果web伺服器接收大量併發請求,就會對系統資源造成壓力,導致系統性能。
二、多線程
伺服器每收到一個客戶端時,會由一個伺服器的主進程派生一個線程出來和該客戶端交互。
優點:由於操作系統產生一個線程的開銷遠小於產生一個進程的開銷,所以多線程在很大程度上減輕了web伺服器對系統資源的要求。
開發方面遵循一定的標準,這相對來說比較規範和有利於協作。
缺點:線上程管理方面有一定的不足,多個線程在同一個進程內,可以訪問同樣的記憶體空間,彼此之間互相影響;同時在開發過程中不可避免的要開發者自己進行記憶體管理,其增加了出錯的風險。伺服器系統需要長時間連續不斷的運轉,錯誤的逐漸積累可能對伺服器產生重大影響。
作者:張瑜
出處:http://www.cnblogs.com/work115/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接