\

Pythonのmultiprocessingモジュールは、プロセスベースの並列処理をサポートするパッケージです。このモジュールを使用すると、プログラマーはマシン上の複数のプロセッサをフルに活用することができます。

しかし、multiprocessing.Processに関数を渡して実行した場合、その戻り値をどのように取得するのでしょうか?その答えは、multiprocessing.Manager().dict()を使用して共有変数を作成することです。

以下に、その使用例を示します。

import multiprocessing

def worker(procnum, return_dict):
    """worker function"""
    print(str(procnum) + " represent!")
    return_dict[procnum] = procnum

if __name__ == "__main__":
    manager = multiprocessing.Manager()
    return_dict = manager.dict()

    jobs = []
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i, return_dict))
        jobs.append(p)
        p.start()

    for proc in jobs:
        proc.join()

    print(return_dict.values())

このコードでは、各プロセスが自身のプロセス番号をreturn_dictに格納しています。その結果、return_dict.values()を出力すると、各プロセスの戻り値が表示されます。

このように、Pythonのmultiprocessingモジュールを使用すれば、複数のプロセスを効率的に管理し、その戻り値を簡単に取得することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です