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)
總結(jié):
????????? ? 1.向管道發(fā)送數(shù)據(jù)使用send函數(shù),從管道接收數(shù)據(jù)使用recv()函數(shù)
? ? ? ? ? ? 2.recv()函數(shù)為阻塞函數(shù),當(dāng)管道中數(shù)據(jù)為空的時候會阻塞
? ? ? ? ? ? 3.一次recv()只能接收一次send()的內(nèi)容
? ? ? ? ? ? 4.send可以發(fā)送的數(shù)據(jù)類型比較多樣,字符串,數(shù)字,列表等