29

マルチプロセッシングモジュールが、Windows実行可能ファイルを生成するために「フリーズ」されているときに機能するために、特定の関数を呼び出す必要があるのはなぜですか?

4

1 に答える 1

31

その理由はfork()、Windows での不足です (これは完全に真実ではありません)。このため、Windows では、 Linux では子プロセスで実行されているコードが実行されている新しいプロセスを作成することによって、フォークがシミュレートされます。コードは技術的に無関係なプロセスで実行されるため、実行する前にそこに配信する必要があります。配送方法は、まず漬け込み、元の工程から新しい工程へとパイプで送ります。さらに、この新しいプロセスは、コマンドライン引数を渡すことによって、パイプで渡されたコードを実行する必要があることを通知されています。の実装を見てみると--multiprocessing-forkfreeze_support()関数のタスクは、実行されているプロセスがパイプで渡されたコードを実行することになっているかどうかを確認することです。

于 2013-08-12T20:17:38.033 に答える