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 相关文章推荐
python一键升级所有pip package的方法
Jan 16 Python
python基础教程项目三之万能的XML
Apr 02 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
python代码过长的换行方法
Jul 19 Python
pytorch 实现查看网络中的参数
Jan 06 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
python 双循环遍历list 变量判断代码
May 04 Python
python 如何调用 dubbo 接口
Sep 24 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
python-jwt用户认证食用教学的实现方法
Jan 19 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
Mar 04 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将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
php函数式编程简单示例
2019/08/08 PHP
javascript之水平横向滚动歌词同步的应用
2007/05/07 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Python队列的定义与使用方法示例
2017/06/24 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
python自动化UI工具发送QQ消息的实例
2019/08/27 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
Python如何实现线程间通信
2020/07/30 Python
Python 图片处理库exifread详解
2021/02/25 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
餐饮加盟计划书
2014/01/10 职场文书
上课打牌的检讨书
2014/02/15 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
单位在职证明书
2014/09/11 职场文书
劳动仲裁调解书
2015/05/20 职场文书