これは Python 3.2.2 用です。私はPythonとマルチプロセッシングがどのように機能するかを学んでいるだけで、この単純な例は私をつまずかせています:
from multiprocessing import Pipe, Process
def f(r):
print(r.recv())
if __name__ == '__main__':
q, r = Pipe()
p = Process(target=f, args=(r,))
p.start()
q.send([42, None, 'hello'])
p.join()
メイン スレッドは、新しい を作成しProcess
、双方向接続オブジェクトを function にp
送信します。プロセスが開始されると、メインプロセスが.r
f()
p
r.recv()
q.send
次に、コースが実行さp.join()
れるまでメインプロセスを待機させる必要があります。p
しかし、何も起こりません。print
にステートメントを追加しても、何も実行されず、機能しないf()
かのように、そこでも何も起こりません。f()
p.start()
これが機能しない理由と、修正できる可能性があることを説明できますか?