博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
管道通信Pipe
阅读量:5131 次
发布时间:2019-06-13

本文共 822 字,大约阅读时间需要 2 分钟。

通信原理:

  在内存中开辟管道空间,生成管道操作对象,多个进程使用“同一个”管道对象进程操作即可实现通信

函数方法:

fd1,fd2 = Pipe(duplex = True)

  功能: 创建管道
  参数:默认表示双向管道
    如果设置为False则为单向管道
  返回值 : 两个管道对象,分别表示管道的两端
     如果是双向管道则均可读写
     如果是单向管道则fd1只读 fd2只写

fd.recv()

  功能:从管道读取到的信息
  返回值:读取到的内容
    *如果管道为空则阻塞

fd.send(data)

  功能:向管道写入内容
  参数:要写入的内容
    *可以发送python数据类型

代码示例:from multiprocessing import Process,Pipeimport os,time#创建管道对象fd1, fd2 = Pipe()def fun(name):    time.sleep(3)    #向管道写入内容    fd1.send("hello "+str(name))def fun1():    time.sleep(2)    data = fd2.recv()    print(data)jobs = []#这里创建了5个子进程进行发消息for i in range(5):    p = Process(target = fun,args = (i,))    jobs.append(p)    p.start()#创建5个子进程收消息for i in range(5):    #读取管道    p1 = Process(target = fun1)    p1.start()for i in jobs:    i.join() p1.join()

 

转载于:https://www.cnblogs.com/zengsf/p/9637901.html

你可能感兴趣的文章
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
距离公式汇总以及Python实现
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
tmux的简单快捷键
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
VC6.0调试技巧(一)(转)
查看>>
php match_model的简单使用
查看>>
SIP服务器性能测试工具SIPp使用指导(转)
查看>>
Vue_(组件通讯)子组件向父组件传值
查看>>
STM32单片机使用注意事项
查看>>
js window.open 参数设置
查看>>