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脚本实现下载合并SAE日志
Feb 10 Python
Python的Bottle框架的一些使用技巧介绍
Apr 08 Python
基于python时间处理方法(详解)
Aug 14 Python
Python编程求解二叉树中和为某一值的路径代码示例
Jan 04 Python
tensorflow实现softma识别MNIST
Mar 12 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
对Python中class和instance以及self的用法详解
Jun 26 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
Python numpy矩阵处理运算工具用法汇总
Jul 13 Python
Python Django 后台管理之后台模型属性详解
Apr 25 Python
Python 的 sum() Pythonic 的求和方法详细
Oct 16 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中显示格式化的用户输入
2006/10/09 PHP
php xml文件操作代码(一)
2009/03/20 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
Webkit的跨域安全问题说明
2011/09/13 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
JavaScript中获取时间的函数集
2016/08/16 Javascript
快速入门Vue
2016/12/19 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
原生JavaScript实现拖动校验功能
2020/09/29 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
python的变量与赋值详细分析
2017/11/08 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
python基础教程之while循环
2019/08/14 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python对Excel的读取的示例代码
2020/02/14 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
pandas按条件筛选数据的实现
2021/02/20 Python
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
2014年银行工作总结范文
2014/11/12 职场文书
工作保证书怎么写
2015/02/28 职场文书
教学督导岗位职责
2015/04/10 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Pandas搭配lambda组合使用详解
2022/01/22 Python