繁体   English   中英

python非阻塞recv进程之间的管道?

[英]python non blocking recv with pipe between processes?

看到这行代码但找不到文档

self.conn.setblocking(0)

问题是,如何在不阻塞的情况下轮询管道池? 有一个父进程需要与一些不稳定的子进程进行通信,并希望定期轮询和检查他们是否有话要说。 如果他们决定需要更多时间才能有新东西要说,不要阻止。 这会神奇地做到这一点吗?

创建管道将返回两个连接对象。 连接对象提供轮询功能,您可以在其中检查是否有任何内容要读取。 轮询功能允许您指定等待的超时时间。

如果您有一组正在等待的连接对象,那么您可以使用 multiprocessing.connection.wait() 或它的非多处理版本。

有关详细信息,请参阅https://docs.python.org/3/library/multiprocessing.html#multiprocessing.connection.Connection ,它将显示连接对象的详细信息。 看投票功能

这很可能是您正在查看的内容: https : //docs.python.org/2/library/socket.html#socket.socket.setblocking

您没有提供太多细节,所以我不确定您要做什么,但通常当您有许多要轮询的套接字时,您将使用select (请参阅 PyMOTW 中的这些示例)。

您可以检查 p.poll(0) 然后如果结果为 True 则管道不为空,您可以在不阻塞的情况下接收数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM