次のコードを見てください。
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
start
関数が呼び出され、ここで呼び出されていることがわかりjoin
ます。実際、それらは常にmultiprocessing
python documentationのモジュールの例で呼び出されます。
start
が呼び出される理由は明らかです。プロセスを開始するからです。ただし、join
ドキュメントで説明されているように、プロセスを完全に終了することとは異なります。
join() メソッドが呼び出されたプロセスが終了するか、オプションのタイムアウトが発生するまで、呼び出しスレッドをブロックします。
したがって、私の理解でjoin()
は、プロセスを終了するために使用されます。terminate()
では、ドキュメントの例で関数が使用されていないのはなぜTerminateProcess()
ですか?
join
との違いは何terminate
ですか? 理想的には、join
の目的は何terminate
ですか? の目的は何ですか? 例によれば、どちらも同じことを実行できるように見えるためです(間違っている場合は修正してください)。
Windowsには終了のための異なる機能があるため、おそらくterminate
WindowsとLinuxの両方で異なるため、これまでに発見しました。選択のさらなる理由も高く評価されます。