次のコードを見てください。
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ます。実際、それらは常にmultiprocessingpython documentationのモジュールの例で呼び出されます。
startが呼び出される理由は明らかです。プロセスを開始するからです。ただし、joinドキュメントで説明されているように、プロセスを完全に終了することとは異なります。
join() メソッドが呼び出されたプロセスが終了するか、オプションのタイムアウトが発生するまで、呼び出しスレッドをブロックします。
したがって、私の理解でjoin()は、プロセスを終了するために使用されます。terminate()では、ドキュメントの例で関数が使用されていないのはなぜTerminateProcess()ですか?
joinとの違いは何terminateですか? 理想的には、joinの目的は何terminateですか? の目的は何ですか? 例によれば、どちらも同じことを実行できるように見えるためです(間違っている場合は修正してください)。
Windowsには終了のための異なる機能があるため、おそらくterminateWindowsとLinuxの両方で異なるため、これまでに発見しました。選択のさらなる理由も高く評価されます。