I/O阻塞與同步理解
I/O:
阻塞:程式發起I/O呼叫,未完成之後,當前程式會被掛起;
非阻塞:程式發起I/O呼叫,被呼叫函式完成之前不會阻塞當前程式,而是立即返回;
同步:程式發起一個過程呼叫(功能、函式)後,在沒有得到結果之前,該呼叫將不會返回;
非同步:程式發起一個過程呼叫(功能、函式)後,即使呼叫者不能立即得結果,但呼叫卻會返回,返回是未完成狀態,當呼叫完成後,核心會自行通知呼叫者;
記憶體對映:mmap
I/O模型有5種:
同步阻塞
同步非阻塞
I/O複用 select()poll()
事件驅動 epoll()wqueue()
邊緣觸發
水平觸發
AIO(非同步非阻塞)
阻塞:程式發起I/O呼叫,未完成之後,當前程式會被掛起;
非阻塞:程式發起I/O呼叫,被呼叫函式完成之前不會阻塞當前程式,而是立即返回;
同步:程式發起一個過程呼叫(功能、函式)後,在沒有得到結果之前,該呼叫將不會返回;
非同步:程式發起一個過程呼叫(功能、函式)後,即使呼叫者不能立即得結果,但呼叫卻會返回,返回是未完成狀態,當呼叫完成後,核心會自行通知呼叫者;
記憶體對映:mmap
I/O模型有5種:
同步阻塞
同步非阻塞
I/O複用 select()poll()
事件驅動 epoll()wqueue()
邊緣觸發
水平觸發
AIO(非同步非阻塞)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29620572/viewspace-1780417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- socket阻塞與非阻塞,同步與非同步、I/O模型非同步模型
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- 同步與非同步、阻塞與非阻塞的理解非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 怎樣理解阻塞非阻塞與同步非同步的區別?非同步
- 流?I/O 操作?阻塞?epoll?
- 同步與非同步 阻塞與非阻塞非同步
- 同步、非同步、阻塞、非阻塞的簡單理解非同步
- 深入理解 python 非同步 i/o 庫 —— asyncioPython非同步
- Java中I/O流:阻塞和非阻塞範例Java
- 同步非同步 與 阻塞非阻塞非同步
- 同步、非同步、阻塞與非阻塞非同步
- Java 非同步 I/OJava非同步
- [轉]阻塞/非阻塞與同步/非同步非同步
- python 非同步 I/OPython非同步
- NodeJs 非同步 I/ONodeJS非同步
- 計算機I/O與I/O模型計算機模型
- 徹底搞懂同步非同步與阻塞非阻塞非同步
- Linux裝置驅動中的阻塞和非阻塞I/OLinux
- 理解I/O Completion Port
- Java非阻塞I/O模型之NIO說明Java模型
- 聊聊執行緒與程式 & 阻塞與非阻塞 & 同步與非同步執行緒非同步
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- 對執行緒、協程和同步非同步、阻塞非阻塞的理解執行緒非同步
- 使用Task實現非阻塞式的I/O操作
- 深入理解Java I/O模型Java模型
- nodejs筆記-非同步I/ONodeJS筆記非同步
- Linux libaio 非同步I/OLinuxAI非同步
- 從資料庫層面理解:隨機 I/O & 順序 I/O資料庫隨機
- 程式與執行緒、同步與非同步、阻塞與非阻塞、併發與並行執行緒非同步並行
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- 深入淺出:Linux裝置驅動中的阻塞和非阻塞I/OLinux
- Java入門學習-理解I/OJava
- [譯] 非同步程式設計:阻塞與非阻塞非同步程式設計
- Rust高效率非同步I/O模型Rust非同步模型