[英]Is epoll thread-safe?
epoll中有两个功能:
当我使用相同的 epoll_fd 时它们是线程安全的吗? 如果一个线程调用 epoll_wait 而其他线程同时调用 epoll_ctl 会发生什么?
它是线程安全的,但没有太多文档明确说明这一点。 看这里
顺便说一句,您也可以让多个线程在单个epoll_fd上等待,但在这种情况下,它会变得有点棘手。 (即,您可能想使用边缘触发的EPOLLET或 oneshot 模式EPOLLONESHOT 。请参见此处。)
epoll_fd
EPOLLET
EPOLLONESHOT
注意:现有接受的答案是正确的,但它提到“没有多少文档明确指出”,而 epoll 文档确实 state 。
epoll_wait的 手册页明确允许在另一个线程中等待时将文件描述符添加到 epoll 集中:
epoll_wait
“注释”部分:
当一个线程在对epoll_wait()的调用中被阻塞时,另一个线程可以将文件描述符添加到等待的epoll实例中。 如果新的文件描述符准备就绪,它将导致epoll_wait()调用解除阻塞。
[英]Is accept() thread-safe?
[英]Is perror thread-safe?
[英]Is `asprintf` thread-safe?
[英]Is errno thread-safe?
[英]Is malloc thread-safe?
[英]Is ARPACK thread-safe?
[英]Is it thread-safe to strcmp?
[英]Are system calls thread-safe?
[英]Thread-safe file updates
[英]Is giflib 5.1.2 not thread-safe?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.