# -*- coding: utf-8 -*-
"""
多进程数据共享 管道Pipe逻辑:2个进程,各自发送数据到管道,对方从管道中取到数据总结:1、只适合两个进程2、recv 会阻塞3、其中一个进程结束了,管道还在,另外一个进程还能使用4、可以把管道认为一个队列, 发送数据端,往队列写数据接收数据端,从队列读数据,队列空了阻塞单向管道 1个队列,双向管道 2个队列使用:1. 创建2个管道的两端的对象  pipe_left_conn,pipe_right_conn = Pipe()2. 在两个进程中 分布 调用 收发命令  conn.send(messsage) con.recv()参考:Pipe对象返回的元组分别代表管道的两端,管道默认是全双工,两端都支持send和recv方法,两个进程分别操作管道两端时不会有冲突,两个进程对管道一端同时读写时可能会有冲突:
"""from multiprocessing import Process,Pipe# 子进程函数
def f(conn):conn.send("child send1")conn.send([2,'test',None])print(conn.recv())conn.close()if __name__ == "__main__":# 产生两个返回对象,一个是管道这一头,一个是另一头# 创建管道,拿到两端对象# 默认True,双向管道都能收发# Pipe(False)单向管道  左边只接收,右边只发送pipe_left_conn,pipe_right_conn = Pipe()p = Process(target=f,args=(pipe_right_conn,))p.start()print(pipe_left_conn.recv())pipe_left_conn.send('\nfather send')p.join()# 注意,子进程已经结束了,但是管理里的数据还在print(pipe_left_conn.recv())# print(parent_conn.recv()) # 此时管道空了,会阻塞
pipe_left_conn.close()pipe_right_conn.close()"""
Out:child send1father send
[2, 'test', None]
"""

转载于:https://www.cnblogs.com/sunzebo/p/9635910.html

python 归纳 (二二)_多进程数据共享和同步_管道Pipe相关推荐

  1. python多进程存储数据_[b0035] python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...

    1. Code #-*- coding: utf-8 -*- """多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一个做 ...

  2. python多进程内存共享_python 归纳 (二十)_多进程数据共享和同步_共享内存Value Array...

    # -*- coding: utf-8 -*- """ 多进程 数据共享 共享变量 Value,Array 逻辑: 2个进程,对同一份数据,一个做加法,一个做加法,各做1 ...

  3. python 归纳 (二五)_多进程数据共享和同步_信号量Semaphore

    # -*- coding: utf-8 -*- """ 多进程同步 使用信号量 multiprocessing.Semaphore逻辑:启动5个进程,打印,每个各自睡眠2 ...

  4. python 归纳 (十二)_并发队列Queue的使用

    # -*- coding: UTF-8 -*- """ 学习队列 Queue总结:1. 队列可以设置大小,也可以无限大小2. 空了,满了,读写时可以阻塞,也可以报错3. ...

  5. python拟牛顿法迭代点绘制_最速下降法、牛顿法、拟牛顿法,Python实现高维二次目标函数优化...

    原理什么的就不说了,只有代码... 十元二次目标函数,求极小值点. 1.最速下降法 import random import numpy as np import matplotlib.pyplot ...

  6. 【python】详解multiprocessing多进程-Pool进程池模块(二)

    [python]详解multiprocessing多进程-process模块(一) [python]详解multiprocessing多进程-Pool进程池模块(二) [python]详解multip ...

  7. 深入浅出python机器学习_如何用python画(绘制)二维函数(二维图)?

    参考文档 python 如何绘制二维函数? from matplotlib import pyplot as plt import numpy as np low=lambda x:10000 if ...

  8. python在材料模拟中的应用_基于Python的ABAQUS二次开发及在板料快速冲压成形模拟中的应用...

    2009 doi :10 1 3969/ j 1 issn 1 1007 2 2012 1 2009 1 04 1 013 基于 Python 的 ABAQUS 二次开发及在板料快速 冲压成形模拟中的 ...

  9. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

最新文章

  1. ASP.netcore MVC钉钉H5微应用(二)鉴权
  2. 用__builtin_return_address获得程序运行栈情况【转】
  3. CentOS 5.5升级内核到2.6.35.4
  4. AngularJS操作DOM——angular.element
  5. python 递归函数与循环的区别_提升Python效率之使用循环机制代替递归函数
  6. python判断性别程序_python 实现性别识别
  7. kido机器人没反应_机器人不能钩的三个英雄,章鱼妈上榜,钩中图四我方直接团灭!...
  8. mysql逻辑读高影响_运维日记| MySQL/Oracle深度解析之一:逻辑读
  9. win11任务栏怎么隐藏 Windows11隐藏任务栏的设置方法
  10. 微信小程序中多个button/view组件中进行切换时改变样式
  11. 数据结构视频|408视频|计算机组成原理视频|计算机网络视频
  12. 虽迟但到,手眼标定代码实现篇
  13. Ehcache 的简单使用
  14. Ubuntu下使用外置USB无线网卡
  15. golang的json的时间格式化解决方案
  16. 三分钟基础:CPU 到底是怎么认识代码的?
  17. 基于C语言的彩票开奖小程序(附源码)_☆*往事随風*☆的博客
  18. xp系统无法连接到指定计算机名,winxp系统提示windows无法访问指定设备路径或文件如何解决...
  19. android 短视频例子,Android短视频开发解析,什么才是开发的重点
  20. MOOS-ivp中文手册参考

热门文章

  1. 使用 ZFS 的 Ubuntu 20.10 安装工具默认启用 TRIM
  2. VS Code 翻译插件
  3. Win 10 更新,Linux 内核的 WSL 2 开始上线
  4. .net core下简单构建高可用服务集群
  5. starima与arima 预测_38-一些预测模型与方法简介(ARIMA、指数平滑等)
  6. 前端ajax数据提交到服务器_详解前端如何让服务器主动向浏览器推送数据
  7. java 自动生成mybatis文件_如何自动生成Mybatis的Mapper文件详解
  8. notepad批量删除html元素,Notepad++几个常用删除类正则表达式汇总(收藏)
  9. matlab有限元分析与应用_专栏 | UEL用户子程序开发步骤—有限元理论基础及Abaqus内部实现方式研究系列20...
  10. 2020年最好用的手机是哪一款_2020年入手5G手机最佳时期到了:5款最佳手机,您认可哪款...