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 相关文章推荐
在Django框架中伪造捕捉到的URLconf值的方法
Jul 18 Python
Python 中 Virtualenv 和 pip 的简单用法详解
Aug 18 Python
python select.select模块通信全过程解析
Sep 20 Python
python中itertools模块zip_longest函数详解
Jun 12 Python
Python中@property的理解和使用示例
Jun 11 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
python print出共轭复数的方法详解
Jun 25 Python
python区块及区块链的开发详解
Jul 03 Python
python和c语言的主要区别总结
Jul 07 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 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循环输出数据库内容的代码
2008/05/24 PHP
php适配器模式介绍
2012/08/14 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
浅析ajax请求json数据并用js解析(示例分析)
2013/07/13 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
jQuery Ajax页面局部加载方法汇总
2016/06/02 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
python使用logging模块发送邮件代码示例
2018/01/18 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python3中的f-Strings增强版字符串格式化方法
2020/03/04 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Django 用户登陆访问限制实例 @login_required
2020/05/13 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
python实现不同数据库间数据同步功能
2021/02/25 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
Araks官网:纽约内衣品牌
2020/10/15 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
村长贪污检举信
2014/04/04 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python