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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 进程间通信——队列和管道(multiprocess.Queue、multiprocess.Pipe) 进程间通信 ...
    go以恒阅读 1,809评论 0 3
  • 进程 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作...
    go以恒阅读 967评论 0 2
  • 进程进程的概念是需要理解的,进程是操作系统中正在运行的一个程序实例,操作系统通过进程操作原语来对其进行调度。操作系...
    zhile_doing阅读 505评论 0 0
  • 网络编程 一.楔子 你现在已经学会了写python代码,假如你写了两个python文件a.py和b.py,分别去运...
    go以恒阅读 2,128评论 0 6
  • 线程 操作系统线程理论 线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有...
    go以恒阅读 1,691评论 0 6