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 相关文章推荐
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
Django添加favicon.ico图标的示例代码
Aug 07 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
python中树与树的表示知识点总结
Sep 14 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
python 变量初始化空列表的例子
Nov 28 Python
使用python模拟高斯分布例子
Dec 09 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
Python生成随机验证码代码实例解析
Jun 09 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 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 dirname()与__FILE__常量的应用
2013/06/24 PHP
ThinkPHP采用实现三级循环代码实例
2014/07/18 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
php 可变函数使用小结
2018/06/12 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
基于JQuery打造无缝滚动新闻步骤详解
2016/03/31 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
python 获取本机ip地址的两个方法
2013/02/25 Python
python生成日历实例解析
2014/08/21 Python
Python实现去除代码前行号的方法
2015/03/10 Python
详解Python中的__new__()方法的使用
2015/04/09 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
Python如何对齐字符串
2020/07/30 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
德国家具折扣店:POCO
2020/02/28 全球购物
护理专科毕业自荐信范文
2014/04/21 职场文书
职务任命书范本
2014/06/05 职场文书
员工三分钟演讲稿
2014/08/19 职场文书
企业公益活动策划方案
2014/08/24 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
项目备案申请报告
2015/05/15 职场文书
2015年董事长秘书工作总结
2015/07/23 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技