from multiprocessing import Process,Pipe,current_process
import pickle
# 创建管道两边的函数进行通信
# 创建左边管道
def func_left(argpipe):
# aragpipe 参数是一个实例化的Pipe
print("我是左边函数")
# 用Pipe 的send()方法,发送序列化数据
argpipe.send(pickle.dumps("left"))
# 用Pipe 的recv()方法接收序列化数据
resl = argpipe.recv()
print("我是左边,我接受的是",pickle.loads(resl))
print(">>>>>>>>>>>")
# 创建右边管道
def func_right(argpipe):
# aragpipe 参数是一个实例化的Pipe
print("我是右边函数")
# 用Pipe 的send()方法,发送序列化数据
argpipe.send(pickle.dumps("right"))
# 用Pipe 的recv()方法接收序列化数据
resr = argpipe.recv()
print("我是右边,我接受的是",pickle.loads(resr))
print("<<<<<<<<<<<<<")
# 主函数
def main():
# Pipe实例化,必须实例化一对,且同时赋值
leftp,rightp = Pipe()
p_left = Process(target=func_left, args=(leftp,))
p_right = Process(target=func_right,args=(rightp,))
p_left.start()
p_right.start()
p_left.join()
p_right.join()
# 关闭管道
leftp.close()
rightp.close()
if __name__ == '__main__':
main()
0713py:Pipe类实现进程间通信
猜你喜欢
转载自blog.csdn.net/whqwjb/article/details/81041379
今日推荐
周排行