您的位置:首页 > 其它

EPOLIIONESHOT事件

2017-05-09 20:50 281 查看
即使我们使用ET模式,一个socket上的事件还是可能会被触发多次.这在并发程序中回引起问题.比如在一个线程或进程上在读取完某个socket上的数据开始处理数据,在数据处理过程中,该socket上又有数据到达,此时另外的线程被唤醒来处理这些数据,于是就出现多个线程同时处理一个socket的局面.然而我们期望的是连接的套接字在任意一个时刻都只被一个线程处理,而这一点epoll  的EPOLLONESHOT可以实现.

对于注册了EPOLLONESHOT的事件的文件描述符,操作系统最多触发其上的注册的一个可读或可写或者异常事件,这样就不会出现多个线程操作一个socket局面了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  epoll EPOLLONESHO