前言
python3中的queue模块中的Queue类实现了FIFO(先进先出)队列结构。
索引
一、初始化 二、插入 弹出元素 三、队列大小 四、其他(不常用) ??1. 插入弹出(简化版) ??2. 队列任务跟踪
Queue方法
一、初始化
- queue.Queue(maxsize=0)
初始化一个Queue对象 maxsize 指定队列长度,默认为0 。但值小于等于0时,表示队列大小无上限。
代码示例
import queue
q1 = queue.Queue()
q2 = queue.Queue(5)
二、插入 弹出元素
- Queue.put(item, block=True, timeout=None):插入元素
- Queue.get(block=True, timeout=None):获取并弹出元素
item 为想要插入队列的一个元素。
后两个参数指定put/get在队列为满/空时的操作。(一般保持默认即可) timeout 为阻塞时间(即异常情况出现后的等待时间),单位为秒。 block 为一个布尔值,指定在情况发生时是否进行阻塞(如果不进行阻塞或阻塞时间超过了timeout,那么将会引发Full 或Empty 异常)
代码示例
import queue
q = queue.Queue()
q.put(12)
q.put(31)
q.put(87)
for i in range(1,4):
print("第"+str(i)+"次弹出的元素为:",q.get())
输出
第1次弹出的元素为: 12
第2次弹出的元素为: 31
第3次弹出的元素为: 87
三、队列大小
- Queue.qsize():返回队列长度
- Queue.empty():返回布尔值,表示队列是否为空
- Queue.full():返回布尔值,表示队列是否已满
代码示例
import queue
q = queue.Queue()
q.put(12)
q.put(31)
q.put(87)
print("当前队列长度:",q.qsize())
print("队列是否为空:",q.empty())
print("队列是否已满:",q.full())
输出
当前队列长度: 3
队列是否为空: False
队列是否已满: False
四、其他(不常用)
1. 插入弹出(简化版)
- Queue.put_nowait(item):相当于
Queue.put(item,False) - Queue.get_nowait():相当于
Queue.get(False)
2. 队列任务跟踪
- Queue.task_done():表示前面排队的任务已经被完成。
- Queue.join():阻塞至队列中所有的元素都被接收和处理完毕。
这两个方法不常用,具体使用请参考→官方文档
参考资料
官方文档queue python3学习-Queue模块
原创不易,感谢您的支持。
|