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之从if开始语句的征程
Sep 14 Python
在Python中使用判断语句和循环的教程
Apr 25 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python手机号码归属地查询代码
May 04 Python
学习Python selenium自动化网页抓取器
Jan 20 Python
python 筛选数据集中列中value长度大于20的数据集方法
Jun 14 Python
Python实现压缩文件夹与解压缩zip文件的方法
Sep 01 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
python语音识别指南终极版(有这一篇足矣)
Sep 09 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
Aug 02 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/07/24 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
Smarty环境配置与使用入门教程
2016/05/11 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
jquery 表单下所有元素的隐藏
2009/07/25 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
浅谈javascript 归并方法
2015/01/21 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
React-Native中props具体使用详解
2017/09/04 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
改进Django中的表单的简单方法
2015/07/17 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
[原创]windows下Anaconda的安装与配置正解(Anaconda入门教程)
2018/04/05 Python
python如何生成网页验证码
2018/07/28 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
python 实现多线程下载视频的代码
2019/11/15 Python
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
关于热爱祖国的演讲稿
2014/05/04 职场文书
环境工程专业自荐信范文
2014/06/24 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
 Python 中 logging 模块使用详情
2022/03/03 Python