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中更新多个对象数据与删除对象的方法
Jul 17 Python
Python实现模拟时钟代码推荐
Nov 08 Python
python读写json文件的简单实现
Apr 11 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
Python后台管理员管理前台会员信息的讲解
Jan 28 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
django 前端页面如何实现显示前N条数据
Mar 16 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
详解Python的爬虫框架 Scrapy
Aug 03 Python
Python SMTP发送电子邮件的示例
Sep 23 Python
PyChon中关于Jekins的详细安装(推荐)
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生成WAP页面
2006/10/09 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
php递归函数怎么用才有效
2018/02/24 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
Display SQL Server Version Information
2007/06/21 Javascript
ExtJS下grid的一些属性说明
2009/12/13 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
2016/08/02 Javascript
详解Vue方法与事件
2017/03/09 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
javascript实现QQ空间相册展示源码
2017/12/12 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
如何实现js拖拽效果及原理解析
2020/05/08 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
Python中基本的日期时间处理的学习教程
2015/10/16 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
九年级物理教学反思
2014/01/29 职场文书
司法建议书范文
2014/05/13 职场文书
企业文化标语口号
2014/06/09 职场文书
六查六看自检自查剖析材料
2014/10/14 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python
「Manga Time Kirara MAX」2022年5月号封面公开
2022/03/21 日漫