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中lambda的用法及其与def的区别解析
Jul 28 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
使用XML库的方式,实现RPC通信的方法(推荐)
Jun 14 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
python保存文件方法小结
Jul 27 Python
python自定义函数实现一个数的三次方计算方法
Jan 20 Python
python简单验证码识别的实现方法
May 10 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
Python中的With语句的使用及原理
Jul 29 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 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
详解PHP中的null合并运算符
2015/12/30 PHP
php表单处理操作
2017/11/16 PHP
php中yii框架实例用法
2020/12/22 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
javascript的事件描述
2006/09/08 Javascript
addRule在firefox下的兼容写法
2006/11/30 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
浅谈javascript 函数属性和方法
2015/01/21 Javascript
jquery简单实现图片切换效果的方法
2015/05/12 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
2016/04/14 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
2018/09/17 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
python生成圆形图片的方法
2020/03/25 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
印尼极简主义和实惠的在线家具店:Fabelio
2019/03/27 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
工商企业管理应届生求职信
2013/11/03 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
派出所副所长四风问题个人整改措施思想汇报
2014/10/13 职场文书
高校教师个人总结
2015/02/10 职场文书
闪闪红星观后感
2015/06/08 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB