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()
0715py:array共享进程实现进程通信
猜你喜欢
转载自blog.csdn.net/whqwjb/article/details/81052470
今日推荐
周排行