通信原理:
在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信函数方法:
fd1,fd2 = Pipe(duplex = True)
功能: 创建管道 参数:默认表示双向管道 如果设置为False则为单向管道 返回值 : 两个管道对象,分别表示管道的两端 如果是双向管道则均可读写 如果是单向管道则fd1只读 fd2只写fd.recv()
功能:从管道读取到的信息 返回值:读取到的内容 *如果管道为空则阻塞fd.send(data)
功能:向管道写入内容 参数:要写入的内容 *可以发送python数据类型代码示例:from multiprocessing import Process,Pipeimport os,time#创建管道对象fd1, fd2 = Pipe()def fun(name): time.sleep(3) #向管道写入内容 fd1.send("hello "+str(name))def fun1(): time.sleep(2) data = fd2.recv() print(data)jobs = []#这里创建了5个子进程进行发消息for i in range(5): p = Process(target = fun,args = (i,)) jobs.append(p) p.start()#创建5个子进程收消息for i in range(5): #读取管道 p1 = Process(target = fun1) p1.start()for i in jobs: i.join() p1.join()