python中Manager进程数据共享

多进程数据共享

from multiprocessing import Process,Manager  #从多进程导入过程中,管理者
import os
def f(d,l,e):
    d[os.getpid()]=os.getpid() #getpid得到各进程的id
    l.append(os.getpid())
    e.append(os.getpid())
    print("l:",l)
    print("d:",d)
    print("e:",e)
if __name__=="__main__":
    with Manager() as mager:  #用于多进程间的共享变量
        d=mager.dict()
        l=mager.list()
        p_list=[]
        e=[]     #未给e进行设置多进程间的共享
        for i in range(3):
            p=Process(target=f,args=(d,l,e))
            p.start()
            p_list.append(p)
        for res in p_list:
            res.join()  #主进程等待子进程的完成后一起打印


运行结果如下:

l: [2164]
d: {2164: 2164}
e: [2164]
l: [2164, 22844]
d: {2164: 2164, 22844: 22844}
e: [22844]
l: [2164, 22844, 9244]
d: {2164: 2164, 22844: 22844, 9244: 9244}
e: [9244]

所以未给e进行设置多进程间的共享,即在执行过程中e只能得到当前进程的资源,不会共享到其他进程的资源

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值