条件触发
条件触发方式中,只要输入缓冲中有数据就会一直通知该事件。
select和epoll默认以条件触发方式工作。
边缘触发
输入缓冲收到数据时,仅注册一次该事件,即使缓冲中还有数据,也不会再进行注册。
由于只注册一次事件,故发生输入相关事件时,应该读取全部的缓冲中的数据。故不能使用阻塞式的函数,会引起长时间停顿。一定要使用非阻塞式的函数。
- 比较:
边缘触发分离接收数据和处理数据的时间点。
相反,如果使用条件触发,接收了数据就一定要及时全部处理完毕,否则会一直产生相应的事件,事件数累加多了,系统会承受不了。