三、I/O多路複用
好了,我們講了這麼多,再來總結一下,到底什麼是I/O多路複用。
先講一下I/O模型:
首先,輸入操作一般包含兩個步驟:
- 等待數據準備好(waiting for data to be ready)。對於一個套接口上的操作,這一步驟關係到數據從網絡到達,並將其複製到內核的某個緩衝區。
- 將數據從內核緩衝區複製到進程緩衝區(copying the data from the kernel to the process)。
其次瞭解一下常用的3種I/O模型:
1、阻塞I/O模型(BIO)
最廣泛的模型是阻塞I/O模型,默認情況下,所有套接口都是阻塞的。 進程調用recvfrom系統調用,整個過程是阻塞的,直到數據複製到進程緩衝區時才返回(當然,系統調用被中斷也會返回)。
https://www.cnblogs.com/dolphin0520/p/3916526.html
IO複用,AIO,BIO,NIO,同步,異步,阻塞和非阻塞 區別(百度)
https://www.cnblogs.com/aspirant/p/6877350.html