ホームページ > バックエンド開発 > Python チュートリアル > Windows でマルチプロセッシングを使用すると RuntimeError が発生するのはなぜですか?

Windows でマルチプロセッシングを使用すると RuntimeError が発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-20 00:15:02
オリジナル
781 人が閲覧しました

Why Do I Get a RuntimeError When Using Multiprocessing on Windows?

マルチプロセッシングを使用した 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート