ホームページ >バックエンド開発 >Python チュートリアル >マルチプロセスで子プロセスから戻り値を取得するにはどうすればよいですか?
マルチプロセッシングでプロセスベースの関数から戻り値を取得する方法
マルチプロセッシング アプリケーションでは、次の戻り値を取得するという共通のニーズが発生します。子プロセスによって実行される関数。これに簡単にアクセスできない理由は、子プロセスがメイン プロセスに値を直接渡すことができないためです。ただし、これらの値を効果的に取得する手法はあります。
指定された例では、特定のタスクを実行してそのプロセス番号を返すためにワーカー プロセスのリストが作成されます。ただし、「ジョブ」リストに保存されている Process オブジェクトからの戻り値にアクセスしようとすると、これらの値が属性に直接保存されていないことが明らかになります。
この課題を克服するには、次のような別のアプローチがあります。必須。効果的な解決策の 1 つは、辞書などの共有変数の使用です。この共有変数により、子プロセスとメイン プロセス間の通信が可能になります。
変更例では、プロセス間の共有メモリを管理するために Manager が作成されます。ディクショナリ return_dict が初期化され、引数としてワーカー関数に渡されます。ワーカー内では、プロセス番号がキーとして割り当てられ、プロセス番号自体が値として割り当てられます。
すべてのプロセスが実行を完了すると、メイン プロセスは子プロセスに結合し、共有の return_dict にアクセスします。その値を反復処理することにより、子プロセスの必要な戻り値が取得されます。このアプローチでは、プロセス間通信を通じて戻り値を効果的に取得します。
以上がマルチプロセスで子プロセスから戻り値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。