为何 epoll 的 ET 模式一定要设置为非阻塞IO
生活随笔
收集整理的這篇文章主要介紹了
为何 epoll 的 ET 模式一定要设置为非阻塞IO
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
ET模式下每次write或read需要循環(huán)write或read直到返回EAGAIN錯誤。以讀操作為例,這是因為ET模式只在socket描述符狀態(tài)發(fā)生變化時才觸發(fā)事件,如果不一次把socket內核緩沖區(qū)的數(shù)據(jù)讀完,會導致socket內核緩沖區(qū)中即使還有一部分數(shù)據(jù),該socket的可讀事件也不會被觸發(fā)
根據(jù)上面的討論,若ET模式下使用阻塞IO,則程序一定會阻塞在最后一次write或read操作,因此說ET模式下一定要使用非阻塞IO
轉載于:https://www.cnblogs.com/developing/p/10888544.html
總結
以上是生活随笔為你收集整理的为何 epoll 的 ET 模式一定要设置为非阻塞IO的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作计划的困惑
- 下一篇: 常见模块设计--数据字典