Python之併發網絡通信模型

常見網絡模型

【1】循環服務器模型 :

循環接收客戶端請求,處理請求。同一時刻只能處理一個請求,處理完畢後再處理下一個。

優點:實現簡單,佔用資源少

缺點:無法同時處理多個客戶端請求

適用情況:處理的任務可以很快完成,客戶端無需長期佔用服務端程序。udptcp更適合循環。

【2】多進程/線程網絡併發模型:

每當一個客戶端連接服務器,就創建一個新的進程/線程爲該客戶端服務,客戶端退出時再銷燬該進程/線程。

優點:能同時滿足多個客戶端長期佔有服務端需求,可以處理各種請求。

缺點: 資源消耗較大

適用情況:客戶端同時連接量較少,需要處理行爲較複雜情況。

示例:參考第二十三、Python之基於fork的多進程編程文末示例

                  第二十六、Python之線程編程(Thread)文末示例

【3】IO併發模型:

利用IO多路複用,異步IO等技術,同時處理多個客戶端IO請求。

優點 : 資源消耗少,能同時高效處理多個IO行爲

缺點 : 只能處理併發產生的IO事件,無法處理cpu計算

適用情況:HTTP請求,網絡傳輸等都是IO行爲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章