gpt4 book ai didi

multithreading - 当另一个线程等待这个 epoll 描述符时,我可以将套接字添加到 epoll 描述符吗?

转载 作者:行者123 更新时间:2023-12-04 06:39:49 32 4
gpt4 key购买 nike

我有几个线程,其中一个在循环中调用 epoll_wait,其他线程可以打开需要由第一个线程 epoll 的连接。是否可以只使用 epoll_ctl 添加新套接字,而另一个线程在 epoll_wait 中等待?

以下场景会发生什么:

  1. 线程 1 调用 epoll_wait。
  2. 线程 2 创建一个套接字 (A) 并使用 epoll_ctl 将其添加到 epoll 实例。
  3. 有人发送了一些数据,socket A 准备好调用 read()。

epoll_wait 会返回 socket A 吗?

最佳答案

是的,会的。 epoll 套接字的全部意义在于您不必重复工作。不涉及快照或使用多个等待队列。

在底层,epoll 套接字有自己的等待队列。当您阻塞在 epoll 套接字上时,您将被添加到该单个等待队列中。没有状态被保存或类似的东西。状态在 epoll 套接字本身。

关于multithreading - 当另一个线程等待这个 epoll 描述符时,我可以将套接字添加到 epoll 描述符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25828221/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com