網上很多IO資料,對新手來說,越看越暈。根據自己的了解,總結對比了一下OIO、NIO、AIO。
OIO:線程發起IO請求,不管核心是否準備好IO操作,從發起請求起,線程一直阻塞,直到操作完成。如下圖:
NIO(reactor模型):線程發起IO請求,立即傳回;核心在做好IO操作的準備之後,通過調用注冊的回調函數通知線程做IO操作,線程開始阻塞,直到操作完成。如下圖:
AIO(proactor模型):線程發起IO請求,立即傳回;記憶體做好IO操作的準備之後,做IO操作,直到操作完成或者失敗,通過調用注冊的回調函數通知線程做IO操作完成或者失敗。如下圖:
個人淺見,歡迎拍磚!