[英]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.