python进程间的通讯之管道通讯

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可以发送的数据类型比较多样,字符串,数字,列表等

你可能感兴趣的:(python进程间的通讯之管道通讯)