码迷,mamicode.com
首页 > 其他好文 > 详细

Managers经理/代理形式的数据共享

时间:2018-10-08 23:13:22      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:int   方式   end   code   for   实现   list   imp   对比   

代理方式实现进程间共享字典和列表形式的数据,

代码块:

import os
from multiprocessing import  Process,Manager


def f(d,l,normalList):
    d[1]=1
    d[2]=2
    d[0.25]=None
    l.append(os.getpid())
    # 普通数组无法实现数据共享,所以不能显示保存所有数据,每次只显示当前数据的最后一位
    normalList.append(os.getpid())
    # d.add(os.getpid())字典没有add和appen的函数,所以此处无法调用
    print(l,共享数组)
    print(normalList,普通数组)
    # print(d,这是共享字典)
    ‘‘‘
    以代理的方式在进程间共享字典或列表形式的数据
    ‘‘‘


if __name__==__main__:
    with Manager() as manager:
        # 生成一个字典,在多个进程之间共享和传递
        d=manager.dict()
        # 生成一个列表含5个初始值,在多个进程间传递和共享
        l=manager.list(range(5))
        # 设置p_list放置每一个进程
        p_list=[]
        # 设置普通数组,与代理数组对比不同
        normalList=[]
        for i in range(10):
            p=Process(target=f,args=(d,l,normalList))
            p.start()
            p_list.append(p)
        # 给每一个进程设置暂停时间
        for res in p_list:
            res.join()
            print(res, p_list的res)
        print(d,这是共享字典)
        print(l,这是共享数组)
        # print(p_list,添加所有共享数据的列表)

 

Managers经理/代理形式的数据共享

标签:int   方式   end   code   for   实现   list   imp   对比   

原文地址:https://www.cnblogs.com/Dark-fire-liehuo/p/9757643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!