epoll中有两个函数:
当我使用相同的 epoll_fd 时,它们是线程安全的吗?
如果一个线程调用epoll_wait,而其他线程同时调用epoll_ctl,会发生什么情况?
epoll_fd
,但在这种情况下,它可能会变得有点棘手。 (也就是说,您可能想使用边缘触发
EPOLLET
或单次模式
EPOLLONESHOT
。请参阅此处。)
epoll_wait
的手册页
,它是线程安全的。它明确允许在另一个线程中等待时将文件描述符添加到 epoll 集:“注释”部分:
当一个线程在调用epoll_wait() 时被阻塞,有可能 让另一个线程将文件描述符添加到等待的epoll 实例。如果新的文件描述符准备好,将会导致 epoll_wait() 调用解锁。