Python 进程操作之进程间通过队列共享数据,队列Queue简单示例


Posted in Python onOctober 11, 2019

本文实例讲述了Python 进程操作之进程间通过队列共享数据,队列Queue。分享给大家供大家参考,具体如下:

队列中的数据是放在内存中的,可以通过分布式缓存redis优化队列。

demo.py(进程通过队列共享数据):

import multiprocessing
def download_from_web(q):
  """下载数据"""
  # 模拟从网上下载的数据
  data = [11, 22, 33, 44]
  # 向队列中写入数据
  for temp in data:
    q.put(temp) # 队列中写数据,队列满了会阻塞。 put_nowait() 队列满了会抛异常
  print("---下载器已经下载完了数据并且存入到队列中----")
def analysis_data(q):
  """数据处理"""
  waitting_analysis_data = list()
  # 从队列中获取数据
  while True:
    data = q.get() # 队列中读数据,队列空了会阻塞。 get_nowait() 队列空了会抛异常
    waitting_analysis_data.append(data)
    if q.empty(): # 队列是否为空。 q.full() 队列是否满了。
      break
  # 模拟数据处理
  print(waitting_analysis_data)
def main():
  # 1. 创建一个队列 (先进先出)
  q = multiprocessing.Queue(10) # 最多放10个数据。 如果不指定长度,默认最大(和硬件相关)
  # 2. 创建多个进程,将队列的引用当做实参进行传递
  p1 = multiprocessing.Process(target=download_from_web, args=(q,))
  p2 = multiprocessing.Process(target=analysis_data, args=(q,))
  p1.start()
  p2.start()
if __name__ == "__main__":
  main()

运行结果:

---下载器已经下载完了数据并且存入到队列中----
[11, 22, 33, 44]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 Python
Python快速查找list中相同部分的方法
Jun 27 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
python防止随意修改类属性的实现方法
Aug 21 Python
在Python3 numpy中mean和average的区别详解
Aug 24 Python
pandas 强制类型转换 df.astype实例
Apr 09 Python
Python ini文件常用操作方法解析
Apr 26 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
python 对xml解析的示例
Feb 27 Python
详解Python为什么不用设计模式
Jun 24 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
Oct 11 #Python
Python中的延迟绑定原理详解
Oct 11 #Python
python pycharm的安装及其使用
Oct 11 #Python
详解Python3迁移接口变化采坑记
Oct 11 #Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 #Python
Pycharm 2019 破解激活方法图文详解
Oct 11 #Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 #Python
You might like
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
js转html实体的方法
2016/09/27 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
vue.js  父向子组件传参的实例代码
2017/10/29 Javascript
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
js实现全选和全不选
2020/07/28 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
python上selenium的弹框操作实现
2020/07/13 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
SkinCeuticals官网:美国药妆品牌
2018/04/19 全球购物
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
学员自我鉴定
2014/03/19 职场文书
家长对孩子的评语
2014/04/18 职场文书
大学社团活动总结
2014/04/26 职场文书
求职信怎么写范文
2014/05/26 职场文书
会计工作检讨书
2015/02/19 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
热爱劳动主题班会
2015/08/14 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
Python数据类型最全知识总结
2021/05/31 Python
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android