当前位置: 首页 > news >正文

Python进程间通信

多线程通信简称IPC(IPC(Inter-Process Communication),多进程间无法直接实现数据交互,需要通过如下方式实现进程之间通讯

  • 管道:pipe 基于共享的内存空间
  • 队列:pipe+锁的概念--->queue
  • 共享内存

队列 - Queue()

from multiprocessing import Queue

什么是multiProcess.Queue: 创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递。

其中 Queue([maxsize]) 用于创建共享的进程队列。参数 :maxsize是队列中允许的最大项数。如果省略此参数,则无大小限制。底层队列使用管道和锁定实现。

Queue方法使用

g queue.get 的使用

是从队列里面取值并且把队列面的取出来的值删掉,没有参数的情况下就是是默认一直等着取值, 就算是队列里面没有可取的值的时候,程序也不会结束,就会卡在哪里,一直等着

from multiprocessing import Queue
q = Queue(3) # 生成一个队列对象,当队列超过了3个等待数据时,第4个会阻塞直接队列有数据消耗完成
###### put方法是往队列里面放值
q.put('1')
q.put('2')
q.put('3')
q.put('4') #阻塞
###### 其他方法:q.full() 是否满了 q.empty()是否空队列


###### get方法是从队列里面取值
print(q.get())
print(q.get())
print(q.get())
详情官方文档
https://docs.python.org/zh-cn/3/library/multiprocessing.html
注意:部分方法只在windows上有效

管道:Pipe()

from multiProcessing  import Pipe

parent,child = Pepe() #管道默认情况下是双工的,即parent与child都有send()和recv()方法

官网:https://docs.python.org/zh-cn/3/library/multiprocessing.html

共享内存 - 进程内同步

from multiprocessing import shared_memory
shm = shared_memory.SharedMemory(create=True, size=10)
共享内存使用较少,日常工程应用中,如果需要共享内存一般是用redis等三方库或工具作为媒介
http://www.dtcms.com/a/7187.html

相关文章:

  • 手机与电脑投屏互联方案
  • MySQL语法练习-DML语法练习
  • 基于长短期神经网络LSTM的测量误差预测
  • 混淆技术概论
  • Hackathon | Mint Blockchain 启动全球 NIP 创意提案黑客松活动!
  • 精进单元测试技能——Pytest断言的艺术
  • 师傅带练|在线实习项目,提供实习证明
  • 有趣的前端知识(二)
  • SG-8018CA 系列 (晶体振荡器 可编程 可用+105°C )
  • TS 36.213 V12.0.0-PDSCH相关过程(2)-用于CSI报告的UE过程
  • 华为bgp之多级RR及团体属性、正则表达式多种应用案例
  • springmvc内嵌tomcat、tomcat整合springmvc、自研国产web中间件
  • Java解决动态口令问题
  • 2023 全球程序员收入报告新鲜出炉
  • Opencv实验合集——实验八:相机校准
  • 游戏、设计选什么内存条?光威龙武系列DDR5量大管饱
  • matlab subs 函数计算太慢
  • 想要成为机器学习领域的高手吗?这里有五本必读免费书,订阅周报发链接 (下)
  • 一文讲透使用Python绘制双纵轴线图
  • 浅谈能耗系统在马来西亚连锁餐饮业的应用
  • 常用python代码大全-random模块的一些常见用法
  • 【日常记录】自动化部署与持续交付:GitHub Actions CICD
  • JavaScript(WebAPI)
  • 私有云平台搭建openstack和ceph结合搭建手册
  • DDIA 第九章:一致性与共识
  • zookeeper【封神录】下篇
  • 桌面天气预报软件 Weather Widget free mac特点介绍
  • 滴水逆向1
  • 《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计
  • LeetCode 28.找出字符串中第一个匹配项的下标