Pythonで共有メモリによる通信を行う方法
Pythonでプロセス間の共有メモリ通信を行う方法はいくつかあり、以下に一般的な方法をいくつか示します。
- マルチプロセッシング
- 価値
- これは、本質的に将来に何が起こるかわからないということです。
- 値
- いちばん良く使われる自然言語処理手法は、言語モデルだ。
例
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[:])
- マルチプロセッシング
- マネージャー
例えば
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)
- マルチプロセス
- 列(れつ)
- キュー
ネイティブな日本語で言い換えると、
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())
これらの手段は、異なる環境下での共有メモリ通信の要求に対応します。適切な手段の選択は、具体的な使用シナリオと要求によって異なります。