Python3 queue队列模块详细介绍


Posted in Python onJanuary 05, 2018

queue介绍

queue是python中的标准库,俗称队列。

在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性。

注意: 在python2.x中,模块名为Queue

queue模块有三种队列及构造函数

Python queue模块的FIFO队列先进先出。 queue.Queue(maxsize)

LIFO类似于堆,即先进后出。 queue.LifoQueue(maxsize)

还有一种是优先级队列级别越低越先出来。 queue.PriorityQueue(maxsize)

queue模块中的常用方法

queue.qsize() 返回队列的大小

queue.empty() 如果队列为空,返回True,反之False

queue.full() 如果队列满了,返回True,反之False

queue.full 与 maxsize 大小对应

queue.get([block[, timeout]])获取队列,立即取出一个元素, timeout超时时间

queue.put(item[, timeout]]) 写入队列,立即放入一个元素, timeout超时时间

queue.get_nowait() 相当于queue.get(False)

queue.put_nowait(item) 相当于queue.put(item, False)

queue.join() 阻塞调用线程,直到队列中的所有任务被处理掉, 实际上意味着等到队列为空,再执行别的操作

queue.task_done() 在完成一项工作之后,queue.task_done()函数向任务已经完成的队列发送一个信号

代码实例

以下代码在Python3下通过

创建队列

import queue
q = queue.Queue()

empty方法(如果队列为空,返回True)

import queue
q = queue.Queue()
print(q.empty())
#输出:True

full方法(如果队列满了,返回True)

import queue
q = queue.Queue(1) #指定队列大小
q.put('a')
print(q.full())
#输出:True

put方法和get方法

import queue
q = queue.Queue()
q.put('a')
q.put('b')
print(q.get())
#输出:a

qsize方法(返回队列里元素个数)

import queue
q = queue.Queue()
q.put('a')
q.put('b')
print(q.qsize())
#输出:2

总结

以上所述是小编给大家介绍的Python3 queue队列模块详细介绍,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
浅谈python jieba分词模块的基本用法
Nov 09 Python
python中实现字符串翻转的方法
Jul 11 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
Python简单I/O操作示例
Mar 18 Python
手把手教你Python yLab的绘制折线图的画法
Oct 23 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
python的help函数如何使用
Jun 11 Python
python 利用toapi库自动生成api
Oct 19 Python
通过实例解析python and和or使用方法
Nov 14 Python
Python 多线程之threading 模块的使用
Apr 14 Python
python多进程中的内存复制(实例讲解)
Jan 05 #Python
使用python和Django完成博客数据库的迁移方法
Jan 05 #Python
Python3多线程爬虫实例讲解代码
Jan 05 #Python
python编写微信远程控制电脑的程序
Jan 05 #Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 #Python
简单实现python收发邮件功能
Jan 05 #Python
5款非常棒的Python工具
Jan 05 #Python
You might like
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP基本语法总结
2014/09/06 PHP
php实现的Cookies操作类实例
2014/09/24 PHP
PHP会话处理的10个函数
2015/08/11 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
动态加载脚本提升javascript性能
2014/02/24 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
nodejs之get/post请求的几种方式小结
2017/07/26 NodeJs
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
Python GUI布局尺寸适配方法
2018/10/11 Python
Python定时任务APScheduler的实例实例详解
2019/07/22 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
本科毕业生的求职信范文
2013/11/20 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
安全标兵事迹材料
2014/08/17 职场文书
工程服务质量承诺书
2015/04/29 职场文书
宾馆客房管理制度
2015/08/06 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers