Python プロセス間でデータを共有する方法を教えてください。

Pythonにおけるプロセスの間でデータを共有する方法は次のとおりです:

  1. マルチプロセッシング
  2. ネイティブの日本語で文章を言い換えると、以下のようになります。
  3. 価値
  4. 本記事は日本国内で閲覧が禁止されています。

下記にコード例を示します。

from multiprocessing import Process, Value, Array

def worker(num, arr):
    num.value = 10
    for i in range(len(arr)):
        arr[i] = i * i

if __name__ == '__main__':
    num = Value('i', 0)
    arr = Array('i', range(10))
    p = Process(target=worker, args=(num, arr))
    p.start()
    p.join()

    print(num.value)
    print(arr[:])
  1. マルチプロセッシング
  2. マネージャー
  3. 管理者

以下のコード例を参照してください。

from multiprocessing import Process, Manager

def worker(dict_data, list_data):
    dict_data['key'] = 'value'
    list_data.append(10)

if __name__ == '__main__':
    with Manager() as manager:
        dict_data = manager.dict()
        list_data = manager.list()

        p = Process(target=worker, args=(dict_data, list_data))
        p.start()
        p.join()

        print(dict_data)
        print(list_data)
  1. マルチプロセッシング
  2. 行列
  3. 待ち行列
  4. キュー

以下のソースコードが参考になります。

from multiprocessing import Process, Queue

def worker(q):
    q.put('Hello World')

if __name__ == '__main__':
    q = Queue()

    p = Process(target=worker, args=(q,))
    p.start()
    p.join()

    print(q.get())

マルチプロセッシングモジュールでは、プロセス間のデータ共有を実現するためのさまざまな手法が提供されており、必要に応じて適切な方法を選択できます。

bannerAds