一、概述
- Python中提供了强大的Manager类,专门用于实现多进程之间的数据共享;
- Manager类是数据不安全的;
- Mangaer类支持的类型非常多,如:value, Array, List, Dict, Queue, Lock等。
二、常用方法和属性
- Manager 类包含的常用方法和属性与Multiprocessing中其他常用类的方法属性一致。
三、示例
Manager实现dict功能
from multiprocessing import Manager,Process,Lock
def work(d,lock):
with lock: #不加锁而操作共享的数据,肯定会出现数据错乱
d['count']-=1
if __name__ == '__main__':
lock=Lock()
with Manager() as m:
dic=m.dict({'count':100})
p_l=[]
for i in range(100):
p=Process(target=work,args=(dic,lock))
p_l.append(p)
p.start()
for p in p_l:
p.join()
print(dic)
网友评论