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实现一个Git日志统计分析的小工具
Dec 14 Python
python简单商城购物车实例代码
Mar 15 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
python利用微信公众号实现报警功能
Jun 10 Python
彻底理解Python中的yield关键字
Apr 01 Python
基于python的Paxos算法实现
Jul 03 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
Python CVXOPT模块安装及使用解析
Aug 01 Python
Django框架表单操作实例分析
Nov 04 Python
详细介绍python操作RabbitMq
Apr 12 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 array_search() 函数使用
2010/04/13 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
使用PHP计算两个路径的相对路径
2013/06/14 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP云打印类完整示例
2016/10/15 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python装饰器使用方法实例
2013/11/21 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
canvas使用注意点总结
2013/07/19 HTML / CSS
意大利奢侈品网站:Italist
2016/08/23 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
英文简历中的自荐信范文
2013/12/14 职场文书
销售工作岗位职责
2013/12/24 职场文书
30岁生日感言
2014/01/25 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
预备党员介绍人意见
2015/06/01 职场文书
消防宣传语大全
2015/07/13 职场文书