Pythonで共有メモリによる通信を行う方法

Pythonでプロセス間の共有メモリ通信を行う方法はいくつかあり、以下に一般的な方法をいくつか示します。

  1. マルチプロセッシング
  2. 価値
  3. これは、本質的に将来に何が起こるかわからないということです。
  4. いちばん良く使われる自然言語処理手法は、言語モデルだ。

from multiprocessing import Process, Value, Array

def func(n, a):
    n.value = 10
    for i in range(len(a)):
        a[i] *= 2

if __name__ == '__main__':
    num = Value('i', 0)
    arr = Array('i', [1, 2, 3, 4, 5])

    p = Process(target=func, args=(num, arr))
    p.start()
    p.join()

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

例えば

from multiprocessing import Process, Manager

def func(lst, dct):
    lst.append(10)
    dct['key'] = 'value'

if __name__ == '__main__':
    manager = Manager()
    lst = manager.list([1, 2, 3])
    dct = manager.dict({'key': 'old value'})

    p = Process(target=func, args=(lst, dct))
    p.start()
    p.join()

    print(lst)
    print(dct)
  1. マルチプロセス
  2. 列(れつ)
  3. キュー

ネイティブな日本語で言い換えると、

from multiprocessing import Process, Queue

def func(q):
    q.put(10)

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

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

    print(q.get())

これらの手段は、異なる環境下での共有メモリ通信の要求に対応します。適切な手段の選択は、具体的な使用シナリオと要求によって異なります。

bannerAds