1. 程式人生 > >進程中的Manager(),實現多進程的數據共享與傳遞

進程中的Manager(),實現多進程的數據共享與傳遞

結果 RoCE ger 數據 ict lis {} for multi

__author__ = "Alex Li"

from multiprocessing import Process, Manager
import os
def f(d, l):
d[os.getpid()] =os.getpid()
l.append(os.getpid())
print(l)

if __name__ == ‘__main__‘:
with Manager() as manager:
d = manager.dict() #{} #生成一個字典,可在多個進程間共享和傳遞

l = manager.list(range(5))#生成一個列表,可在多個進程間共享和傳遞
p_list = []
for i in range(10):
p = Process(target=f, args=(d, l))
p.start()
p_list.append(p)
for res in p_list: #等待結果
res.join()

print(d)
print(l)


‘‘‘
Manager()充當進程之間的翻譯者,如果有10個進程,就會有10個一模一樣數據,才能進行多個進程間共享和傳遞
‘‘‘

進程中的Manager(),實現多進程的數據共享與傳遞