from mumultiprocessing import Process,Pipe
import os
def p1(i):
i.send("i am p1!")
print(os.getppid(),os.getpid())
def p2(i):
i.send("i am p2!")
print(os.getppid(),os.getpid())
if __name__=="__main__":
p1_conn,p2_conn = Pipe()
P1 = Process(target = p1,args=(p1_conn,))
P2 = Process(target = p2,args =(p2_conn,))
P1.start()
P2.start()
data1=P1.recv()
print(data1)
data2 = P2.recv()
print(data2)
总结:
1.向管道发送数据使用send函数,从管道接收数据使用recv()函数
2.recv()函数为阻塞函数,当管道中数据为空的时候会阻塞
3.一次recv()只能接收一次send()的内容
4.send可以发送的数据类型比较多样,字符串,数字,列表等