Manager 多进程之间的数据共享

#太耗资源 一般不太建议用

from multiprocessing import Process,Manager

# def fun(d,s,a):
#     d[a] = a
#     s.append(a)
#
# if __name__ == '__main__':
#     with Manager() as manager:
#         d = manager.dict()
#         s = manager.list(range(5))
#         p_list = []
#
#         for i in range(10):
#             p = Process(target=fun,args=(d,s,i))
#             p.start()
#             p_list.append(p)
#
#         for res in p_list:
#             res.join()
#         #
#         print(d)
#         print(s)


def fun(a,b,c):
    a[c] = c
    b.append(c)

if __name__ == '__main__':

    with Manager() as manager:
        dict_1 = manager.dict()
        list_1 = manager.list()

        list_p = []

        for i in range(10):
            p = Process(target=fun,args=(dict_1,list_1,i,))
            p.start()
            list_p.append(p)
        for i in list_p:
            i.join()

        print(dict_1)
        print(list_1)

  

posted @ 2017-01-13 18:15  200ML  阅读(266)  评论(0编辑  收藏  举报