epoll的水平触发处理阻塞io

richard
  • 21

epoll有两种工作模式,分别为水平触发和边缘触发。手册上面说边缘触发的时候要求文件描述符必须为非阻塞的,这个我可以理解。但是水平触发为什么可以处理阻塞io呢?

在水平触发模式下,如果一个io是阻塞的,我们对这个io进行写操作,io一直阻塞,那么进程就会被阻塞,其他的io也无法处理了,这种情况正确吗?

回复
阅读 1.5k
1 个回答

"水平触发为什么可以处理阻塞I/O"这句话不太懂。我们说I/O阻不阻塞主要就是说当I/O没有准备好的时候,要不要等待。既然都用到epoll了,那么就说明你写的时候,I/O已经准备好了,也就不存在阻塞了,那当处理完这个文件描述符以后,就可以继续处理下一个准备好了的文件描述符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏