[英]return values of multiprocessing.Pipe()
我正在尝试了解使用multiprocessing.Pipe
来传达两个过程的正确方法。 我想出了下面的代码,它似乎可以工作:
import multiprocessing
def f(parent_conn, child_conn):
parent_conn.close()
while True:
cmd, data = child_conn.recv()
if cmd == "f1":
child_conn.send("f1!")
elif cmd == "f2":
child_conn.send("f2!")
else:
raise NotImplementedError
if __name__ == "__main__":
parent_conn, child_conn = multiprocessing.Pipe()
p = multiprocessing.Process(target=f, args=(parent_conn, child_conn))
p.start()
child_conn.close()
parent_conn.send(("f1", None))
parent_conn.send(("f2", None))
print(parent_conn.recv())
print(parent_conn.recv())
但是我不清楚parent_conn
和child_conn
到底是什么意思,为什么我必须调用child_conn.close()
和parent_conn.close()
(假设首先关闭这些连接是正确的)。 什么是parent_conn
和child_conn
? 我的代码是否包含任何错误或不良做法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.