pipe模块可以实现进程之间数据传递

栗子1:3个进程,一个主进程,2个子进程,三个管道,三个进程通过3个管道连接,主进程发一个信息,通过2个子进程转发,最后回到主进程输出

import multiprocessing

def func(pipe_end,pipe_head):
msg = pipe_end.recv()
print("--->",msg)
pipe_head.send(msg) if __name__ == '__main__':
pipe_head_1,pipe_end_1 = multiprocessing.Pipe()#声明管道对1
pipe_head_2,pipe_end_2 = multiprocessing.Pipe()#声明管道对2
pipe_head_3,pipe_end_3 = multiprocessing.Pipe()#声明管道对3 p1 = multiprocessing.Process(target=func,args=(pipe_end_1,pipe_head_2))#子进程p1 执行函数func,参数为管道两端
p1.start()
p2 = multiprocessing.Process(target=func,args=(pipe_end_2,pipe_head_3))#子进程p2 执行函数func,参数为管道两端
p2.start()
pipe_head_1.send("hello")
print(pipe_end_3.recv())

栗子2:3个进程,一个主进程,一个子进程,一个孙子进程,三个进程通过3个管道连接,主进程发一个信息,通过2个子进程转发,最后回到主进程输出

import multiprocessing

def func(pipe_end,pipe_head,*args):
#print("--->",args[0])
#print('--->',args[1])
msg = pipe_end.recv()
print("-->",msg)
pipe_head.send(msg)
p2 = multiprocessing.Process(target=func2,args=(args[0],args[1]))#子进程p2 执行函数func2,参数为管道两端
p2.start() def func2(pipe_end,pipe_head):
msg = pipe_end.recv()
print("--->",msg)
pipe_head.send(msg) if __name__ == '__main__':
pipe_head_1,pipe_end_1 = multiprocessing.Pipe()#声明管道对1
pipe_head_2,pipe_end_2 = multiprocessing.Pipe()#声明管道对2
pipe_head_3,pipe_end_3 = multiprocessing.Pipe()#声明管道对3
#print(pipe_end_2)
#print(pipe_head_3) p1 = multiprocessing.Process(target=func,args=(pipe_end_1,pipe_head_2,pipe_end_2,pipe_head_3))#子进程p1 执行函数func,参数为管道两端
p1.start() pipe_head_1.send("hello")
print("->",pipe_end_3.recv())

最新文章

  1. iOS block
  2. 基于Quick-cocos2d-x的资源更新方案 一
  3. CSS3 3D骰子
  4. 使用navicat连接mysql要报10038的错误
  5. ASP.NET MVC中的Razor语法
  6. dll文件是什么
  7. 【Java设计模式】单例模式
  8. shell脚本等的操作
  9. OD 内存映射 属主找不到当前程序名解决办法 和 跟随ClassProc 反汇编窗口空白解决办法
  10. 彻底理解Gradle的任务
  11. 《Android开发艺术探索》读书笔记 (11) 第11章 Android的线程和线程池
  12. Beyond Compare设置默认为ANSI格式
  13. vue elementUI之Form表单 验证
  14. ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
  15. docker 启动 nginx 服务
  16. 【Tsinsen A1339】JZPLCM (树状数组)
  17. oracle 老用户数据导入新建用户
  18. hdu1698
  19. c++ kafka 客户端rdkafka报Receive failed: Disconnected问题原因以及解决方法
  20. python if all

热门文章

  1. 题解【AcWing177】噩梦
  2. 服务遇到的问题 Linux
  3. python3练习100题——006
  4. python3练习100题——005
  5. webrtc博客收藏
  6. mediasoup-demo解析-客户端
  7. C#的HttpModule中及Java的Servlet中成员变量乱用导致的不易重现的BUG
  8. 部署项目到jetty
  9. es 6.x scroll用法
  10. 【转载】SpringMVC框架介绍