1
コーディングが初めてです。プロセス間通信にPipe()を複数回使用できるかどうかを知りたい。はいの場合、次のコードには何がありますか?いいえの場合、1本のパイプを複数回使用できない理由は何ですか?あなたは今ではそれを考え出したていない場合はPythonのIPCでmultiprocessing.Pipe()を複数回使用できますか?
import multiprocessing
def f1(pipe):
r, w = pipe
r.close()
for n in range(10):
w.send(n)
def f2(pipe):
r, w = pipe
w.close()
while True:
try:
item = r.recv()
except EOFError:
break
print("Item received by f2:", item)
def f3(pipe):
r, w = pipe
r.close()
for n in range(10, 21):
w.send(n)
def f4(pipe):
r, w = pipe
w.close()
while True:
try:
item = r.recv()
except EOFError:
break
print("Item received by f2:", item)
if __name__ == '__main__':
(r, w) = multiprocessing.Pipe()
p1 = multiprocessing.Process(target=f1, args=((r, w),))
p2 = multiprocessing.Process(target=f2, args=((r, w),))
p1.start()
p2.start()
w.close()
p1.join()
p2.join()
#(r, w) = multiprocessing.Pipe()
p3 = multiprocessing.Process(target=f3, args=((r, w),))
p4 = multiprocessing.Process(target=f4, args=((r, w),))
p3.start()
p4.start()
w.close()
p3.join()
p4.join()