为什么epollET模式下的文件描述必须是非阻塞的
书上写的是:“每个使用ET模式的文件描述符都应该是非阻塞的。如果文件描述符是阻塞的,那么读或写操作将会因为没有后续的事件而一直处于阻塞状态(饥渴状态)。”
一开始没有理解。
思考,什么时候会阻塞?——当没数据可读/写的时候。由于ET模式是循环读/写,那么总会存在最后没数据可读/写的情况,因此会在最后一次读/写阻塞。
为什么LT可以使用阻塞和非阻塞,ET只能使用非阻塞?
因为LT模式,每次是读取固定的字节数,如果还有需要读的,就等下一次通知的时候再读。