进程Manager
功能
数据同步,无需接收与传递参数,数据变化自动同步
用法
-
创建对象
-
m = multiprocessing.Manager()
-
调用方法获得特殊的数据对象
-
data = m.dict({"num": 0})
-
数据对象进行传递并可在另一进程内修改数据
注意
- 子进程要join一下,在主进程中要join一下,否则会报错
- 多个子进程同时修改数据会发生数据冲突,解决办法,加进程锁
代码
import multiprocessing
def func(data):
print("在子进程内")
data["num"] += 1
# print(data.get("num"))
print("结束子进程")
if __name__ == '__main__':
m = multiprocessing.Manager()
data = m.dict({"num": 0})
p = multiprocessing.Process(target=func, args=(data,))
p.start()