天天看點

OIO、NIO、AIO差別

網上很多IO資料,對新手來說,越看越暈。根據自己的了解,總結對比了一下OIO、NIO、AIO。

OIO:線程發起IO請求,不管核心是否準備好IO操作,從發起請求起,線程一直阻塞,直到操作完成。如下圖:

OIO、NIO、AIO差別

NIO(reactor模型):線程發起IO請求,立即傳回;核心在做好IO操作的準備之後,通過調用注冊的回調函數通知線程做IO操作,線程開始阻塞,直到操作完成。如下圖:

OIO、NIO、AIO差別

AIO(proactor模型):線程發起IO請求,立即傳回;記憶體做好IO操作的準備之後,做IO操作,直到操作完成或者失敗,通過調用注冊的回調函數通知線程做IO操作完成或者失敗。如下圖:

OIO、NIO、AIO差別

個人淺見,歡迎拍磚!