1. 程式人生 > >5種io模型摘要

5種io模型摘要

線程 實現 圖片 同步 blog 立即執行 同時 創建 actor

https://www.jianshu.com/p/db5da880154a

I/O多路復用,I/O就是指的我們網絡I/O,多路指多個TCP連接(或多個Channel),復用指復用一個或少量線程。串起來理解就是很多個網絡I/O復用一個或少量的線程來處理這些連接。

理解了select就抓住了I/O多路復用的精髓,對應的操作系統中調用的則是系統的select函數,該函數會等待多個I/O事件(比如讀就緒,寫)的任何一個發生,並且只要有一個網絡事件發生,select線程就會執行。

阻塞式I/O和I/O復用,兩個階段都阻塞,那區別在哪裏呢?就在於第三節講述的Selector,雖然第一階段都是阻塞,但是阻塞式I/O如果要接收更多的連接,就必須創建更多的線程。I/O復用模式下在第一個階段大量的連接統統都可以過來直接註冊到Selector復用器上面,同時只要單個或者少量的線程來循環處理這些連接事件就可以了,一旦達到“就緒”的條件,就可以立即執行真正的I/O操作。這就是I/O復用與傳統的阻塞式I/O最大的不同。也正是I/O復用的精髓所在。
避免連接多了之後線程切換巨大開銷
https://blog.csdn.net/woaixiaopangniu521/article/details/70279143

IO多路復用模型使用了Reactor設計模式實現了這一機制。

異步IO模型使用了Proactor設計模式實現了這一機制。

技術分享圖片

https://www.aliyun.com/jiaocheng/792562.html

這篇文章闡述了同步阻塞的區別

5種io模型摘要