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实现list反转实例汇总
Nov 11 Python
Python中的类与对象之描述符详解
Mar 27 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python的shutil模块中文件的复制操作函数详解
Jul 05 Python
Python实现网站表单提交和模板
Jan 15 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
Jun 21 Python
python编写微信公众号首图思路详解
Dec 13 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
教你怎么用Python生成九宫格照片
May 20 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 pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
javascript加减乘除的简单实例
2016/07/12 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
2019/08/08 Javascript
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
python计算列表内各元素的个数实例
2018/06/29 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
python编写猜数字小游戏
2019/10/06 Python
pyspark 随机森林的实现
2020/04/24 Python
基于Python实现简单学生管理系统
2020/07/24 Python
PyCharm配置anaconda环境的步骤详解
2020/07/31 Python
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
大二自我鉴定范文
2013/10/05 职场文书
卫生系统先进事迹
2014/05/13 职场文书
小学英语复习计划
2015/01/19 职场文书
刑事法律意见书
2015/06/04 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python