Python3 queue队列模块详细介绍
作者:mrr 发布时间:2023-10-03 05:10:51
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())
#输出:Truefull方法(如果队列满了,返回True)
import queue
q = queue.Queue(1) #指定队列大小
q.put('a')
print(q.full())
#输出:Trueput方法和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编写面向对象的代码时,我们会常常使用“继承”这种开发方式。例如下面这一段代码:class Info: def
- 本文研究的主要是pyqt5自定义信号实例解析的相关内容,具体介绍如下。PyQt5已经自动定义了很多QT内建的信号。但是在实际的使用中为了灵活
- 一、什么是星号变量最初,星号变量是用在函数的参数传递上的,在下面的实例中,单个星号代表这个位置接收任意多个非关键字参数,在函数的*b位置上将
- 本文是基于Windows 10系统环境,实现python生成随机数、随机字符、随机字符串:Windows 10PyCharm 2018.3.
- 本文实例为大家分享了Python实现用户名和密码登录的具体代码,供大家参考,具体内容如下功能登录及注册,密码错误多次后验证码确认说明初次运行
- 有时候我们没办法得到pdf或者word文档,这个时候会使用手机或者相机进行拍照,往往会出现背景,打印出来就是灰色的或者有黑色的背景,这个时候
- 1、各种用法说明A. 最简单的用法:mysqldump -uroot -pPassword [database name] &g
- 本文实例讲述了Python实现将目录中TXT合并成一个大TXT文件的方法。分享给大家供大家参考。具体如下:在网上下了一个dota的英雄攻略,
- 在创建SQL Server 2000 故障转移群集之前,必须配置 Microsoft 群集
- 今天看关于Git的博客,发现总结关于Git仓库的文档,写的思路很清晰。可以和前一篇文章,对照的看,可以更加清晰理解。git-referenc
- 为了安全起见,需要经常对数据库作备份,或者还原。对于 MySQL 而言,最方便的方法可能就是用 phpMyAdmin 的导出、导入功能了,但
- 本文方案适用于Microsoft Sql Server 2008/2012/2012 r2/2014版本,以下简称MSSQLSERVER。M
- 写在前面虽然 make 和 new 都是能够用于初始化数据结构,但是它们两者能够初始化的
- 本文实例讲述了基于python编写的微博应用,分享给大家供大家参考。具体如下:在编写自己的微博应用之前,先要到weibo开放平台申请应用的公
- pycharm里边安装不上d2l包。按以下步骤操作即可成功解决。1、首先查看现在pycharm所在的环境File—>
- 很多人错误地认为ASP是简单、低效的代名词,认为ASP是低能的,不足挂齿的,也很简单,一学就会,一琢磨就精通。有人讲ASP不安全,写ASP的
- 1、远程服务器上安装jupyter notebook(配置jupyter_notebook_config.py文件)sudo pip ins
- 最近发现一常见的加载进度条(loadding)的问题,所以试试,觉得还不错,大家可以看下.当然这个只是一个效果而已!呵呵,用的着的时候,你就
- 今天不小心又点了收藏夹里Google的新首页风格的地址,赫然发现又变了!从这个页面上线以来,偶尔会去看看,短短一年的时间,已经变换了至少三次
- 还有多少耿直boy和我一样在等待微信官方送上一顶圣诞帽?最后知道真相的我眼泪掉下来……(还蒙在鼓里的同学请在微信最上方的搜索栏自行搜索『圣诞