ホームページ >バックエンド開発 >Python チュートリアル >マルチプロセスで子プロセスから戻り値を取得するにはどうすればよいですか?

マルチプロセスで子プロセスから戻り値を取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 16:10:13275ブラウズ

How Can I Retrieve Return Values from Child Processes in Multiprocessing?

マルチプロセッシングでプロセスベースの関数から戻り値を取得する方法

マルチプロセッシング アプリケーションでは、次の戻り値を取得するという共通のニーズが発生します。子プロセスによって実行される関数。これに簡単にアクセスできない理由は、子プロセスがメイン プロセスに値を直接渡すことができないためです。ただし、これらの値を効果的に取得する手法はあります。

指定された例では、特定のタスクを実行してそのプロセス番号を返すためにワーカー プロセスのリストが作成されます。ただし、「ジョブ」リストに保存されている Process オブジェクトからの戻り値にアクセスしようとすると、これらの値が属性に直接保存されていないことが明らかになります。

この課題を克服するには、次のような別のアプローチがあります。必須。効果的な解決策の 1 つは、辞書などの共有変数の使用です。この共有変数により、子プロセスとメイン プロセス間の通信が可能になります。

変更例では、プロセス間の共有メモリを管理するために Manager が作成されます。ディクショナリ return_dict が初期化され、引数としてワーカー関数に渡されます。ワーカー内では、プロセス番号がキーとして割り当てられ、プロセス番号自体が値として割り当てられます。

すべてのプロセスが実行を完了すると、メイン プロセスは子プロセスに結合し、共有の return_dict にアクセスします。その値を反復処理することにより、子プロセスの必要な戻り値が取得されます。このアプローチでは、プロセス間通信を通じて戻り値を効果的に取得します。

以上がマルチプロセスで子プロセスから戻り値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。