我的应用程序是一个tcp服务器,使用epoll等待请求。
我想在同一个循环中等待队列。
即:wake up the thread either socket r/w is available or queue is not empty.
我当然在谷歌上搜索了很多,但没有找到好的解决方案。
我想了好几种解决方法:
为设置超时(例如0.5)埃波尔,等等,然后queue.get\u nowait队列直到空了。 这样,即使不需要处理cpu资源也会浪费。 而且不是实时的。
使用域套接字而不是队列,这样epoll就可以同时等待这两者。 这样,sender必须将python对象转换为string/binary数据 传输(接收器反之亦然),这很无聊。
---没有一个让我满意。在
我能等一等吗? --所以我可以事件集()之后队列.put(). 或者
有什么好办法解决我的问题吗?在
谢谢!在
听起来你应该看看非阻塞套接字。在
https://docs.python.org/2/howto/sockets.html#non-blocking-sockets
相关问题 更多 >
编程相关推荐