python单线程等待队列和套接字

2024-05-04 01:42:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我的应用程序是一个tcp服务器,使用epoll等待请求。
我想在同一个循环中等待队列。
即:wake up the thread either socket r/w is available or queue is not empty.

我当然在谷歌上搜索了很多,但没有找到好的解决方案。
我想了好几种解决方法:

  1. 为设置超时(例如0.5)埃波尔,等等,然后queue.get\u nowait队列直到空了。 这样,即使不需要处理cpu资源也会浪费。 而且不是实时的。

  2. 使用域套接字而不是队列,这样epoll就可以同时等待这两者。 这样,sender必须将python对象转换为string/binary数据 传输(接收器反之亦然),这很无聊。

---没有一个让我满意。在

我能等一等吗? --所以我可以事件集()之后队列.put(). 或者

有什么好办法解决我的问题吗?在

谢谢!在


Tags: orthe服务器应用程序队列queueissocket