美文网首页
python进程间的通讯之管道通讯

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

作者: 鸡鸣狗盗士不至 | 来源:发表于2019-03-18 11:04 被阅读0次

    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进程间的通讯之管道通讯

          本文链接:https://www.haomeiwen.com/subject/jjqvmqtx.html