0715py:array共享进程实现进程通信

from multiprocessing import Process , current_process ,Array
# 创造子函数1
def funca(arga):
    # arga 是Array实例化的对象
    print("我是funca:进程名字%s | 获取的arga是%s"%(current_process().name,arga[:]))

    # 修改Array内容
    arga[0] = 1

def funcb(arga):
    # arga 是Array实例化的对象
    print("我是funcb:进程名字%s | 获取的arga是%s"%(current_process().name,arga[:]))

    # 修改Array内容
    arga[1] = 2

def funcc(arga):
    # arga 是Array实例化的对象
    print("我是funcc:进程名字%s | 获取的arga是%s"%(current_process().name,arga[:]))

    # 修改Array内容
    arga[2] = 3

# 以上三个函数,都接受Array的实例作为参数,再修改其内部数据,共享一个array,其修改的内容也会传递

def main():
    arga = Array('i',3)
    print("开始主函数,arga 是 ",arga[:])

    pa = Process(target=funca,name="a进程",args=(arga,))
    pb = Process(target=funcb,name="b进程",args=(arga,))
    pc = Process(target=funcc,name="c进程",args=(arga,))

    pa.start()
    pb.start()
    pc.start()

    pa.join()
    pb.join()
    pc.join()

    print("结束主函数,arga 是 ",arga[:])
    # 最终array的数据是被子函数修改过的

if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/whqwjb/article/details/81052470