1. 程式人生 > >I/O復用模型詳解

I/O復用模型詳解

最終 ref bad master process 使用 被調用 roc io操作

一.httpd工作模型

prefork:進程模型,兩級結構,主進程master負責生成子進程,每個子進程負責響應一個請求

worker:線程模型,三級結構,主進程master負責生成子進程,每個子進程負責生成多個線程,每個線程相應一個請求

event:線程模型,三級結構,主進程master負責生成子進程,每個子進程響應多個請求

二.I/O模型名詞概念

同步/異步:關註的是消息通信機制

同步:synchronous,調用者等待被調用者返回信息,才能繼續執行
異步:asynchronous,被調用者通過狀態、通知或回調機制主動通知調用者被調用者的運行狀態

阻塞/非阻塞:關註調用者在等待結果返回之前所處的狀態

阻塞:blocking,指IO操作需要徹底完成之後才返回到用戶空間,調用結果返回之前,調用者被掛起

非阻塞:nonblocking,指IO操作被調用後立即返回給用戶一個狀態值,無需等到IO操作徹底完成,最終的調用結果返回之前,調用者不會被掛起

I/O模型:阻塞型、非阻塞型、復用型、信號驅動型、異步

三.五種I/O復用模型詳解
1.同步阻塞
技術分享圖片

技術分享圖片

2.同步非阻塞
技術分享圖片

技術分享圖片

3.IO多路復用模型
技術分享圖片

技術分享圖片

多路復用模型使用場景
技術分享圖片

4.信號驅動IO模型
技術分享圖片

技術分享圖片

5.異步非阻塞模型
技術分享圖片

技術分享圖片

五.種I/O復用模型對比
技術分享圖片

六.IO模型的具體實現方式對比

I/O復用模型詳解