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实现将16进制字符串转化为ascii字符的方法分析
Jul 21 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python读取中文txt文本的方法
Apr 12 Python
Django REST framework内置路由用法
Jul 26 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
解决pycharm下pyuic工具使用的问题
Apr 08 Python
什么是Python中的顺序表
Jun 02 Python
Python3交互式shell ipython3安装及使用详解
Jul 11 Python
10个顶级Python实用库推荐
Mar 04 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
Apr 20 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
jquery动态切换背景图片的简单实现方法
2016/05/14 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】
2019/05/05 Javascript
如何让微信小程序页面之间的通信不再变困难
2019/06/03 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
python实现倒计时的示例
2014/02/14 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
python dlib人脸识别代码实例
2019/04/04 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
网络管理员岗位职责
2014/03/17 职场文书
《长征》教学反思
2014/04/27 职场文书
操行评语大全
2014/04/30 职场文书
选秀节目策划方案
2014/06/06 职场文书
法制宣传标语集锦
2014/06/25 职场文书
村班子对照检查材料
2014/08/18 职场文书
交通事故协议书范本
2014/11/18 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP