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