Python多进程-进程间数据的共享

不同的进程不能同时修改一份数据,但是不同的进程能对一份数据进行修改

可通过Manager来实现进程间的数据共享

# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR"

from multiprocessing import Process,Manager
import os

def Child_Process(a,b):
    a[os.getpid()] = os.getpid()
    b.append(os.getpid())
    print(b)

if __name__ == '__main__':
    d = Manager().dict() #生成一个字典,可在多个进程间传递和共享
    l = Manager().list() #生成一个列表,可在多个进程间传递和共享

    p_list = []

    for i in range(10):
        p = Process(target=Child_Process,args=(d,l))
        p.start()
        p_list.append(p)

    for r in p_list:
        r.join()

    print(d)
    print(l)

 运行结果

父进程开启了10个子进程,10个子进程又把自己的进程号传入了数组和字典

posted @ 2018-01-06 22:43  Sch01aR#  阅读(1485)  评论(0编辑  收藏  举报