マルチプロセッシングを使用した Windows ランタイム エラー
このエラーは、適切な初期化イディオムを使用せずに Windows 上で Python マルチプロセッシング プロセスを起動しようとすると発生します。
質問では、Python プログラムが別のモジュールからスレッドとプロセスを起動しようとしましたが、RuntimeError が発生しました。原因は、Windows サブプロセスが初期化時にメイン モジュールを暗黙的にインポートすることです。適切なガードがないと、再帰的なサブプロセスの作成が発生します。
解決策:
エラーを解決するには、if を追加する必要があります。 name == '__main__' メイン モジュールで複数のプロセス インスタンスを防止するガード。
変更されたメイン モジュール (testMain.py):
if __name__ == '__main__': import parallelTestModule extractor = parallelTestModule.ParallelExtractor() extractor.runInParallel(numProcesses=2, numThreads=4)
この修正バージョンでは、メイン モジュールは並列コードを実行する前に、メイン プロセスであるかどうかを明示的にチェックします。これにより、サブプロセスが再帰的に作成されなくなり、RuntimeError.
が回避されます。以上がWindows でマルチプロセッシングを使用すると RuntimeError が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。