Python学习 quque模块
https://docs.python.org/zh-cn/3/library/queue.html
queue 模块实现多生产者,多消费者队列。
模块中有三种类型的队列,它们之间的区别仅是条目取回的顺序
- FIFO(先进先出first-in, first out)队列
- LIFO(后进先出last-in, first out)队列
- 优先级队列 priority queue,条目将(使用heapq模块)排序,并且最小值条目第一个返回
- class
queue.Queue(maxsize=0) -
FIFO 队列构造函数。 maxsize 是个整数,用于设置可以放入队列中的项目数的上限。当达到这个大小的时候,插入操作将阻塞至队列中的项目被消费掉。如果 maxsize 小于等于零,队列尺寸为无限大。
- class
queue.LifoQueue(maxsize=0) -
LIFO 队列构造函数。 maxsize 是个整数,用于设置可以放入队列中的项目数的上限。当达到这个大小的时候,插入操作将阻塞至队列中的项目被消费掉。如果 maxsize 小于等于零,队列尺寸为无限大。
- class
queue.PriorityQueue(maxsize=0) -
优先级队列构造函数。 maxsize 是个整数,用于设置可以放入队列中的项目数的上限。当达到这个大小的时候,插入操作将阻塞至队列中的项目被消费掉。如果 maxsize 小于等于零,队列尺寸为无限大。
最小值先被取出( 最小值条目是由
sorted(list(entries))[0]返回的条目)。条目的典型模式是一个以下形式的元组:(priority_number, data)。如果 data 元素没有可比性,数据将被包装在一个类中,忽略数据值,仅仅比较优先级数字 :
from dataclasses import dataclass, field from typing import Any @dataclass(order=True) class PrioritizedItem: priority: int item: Any=field(compare=False)
- class
queue.SimpleQueue -
无界的 FIFO 队列构造函数。简单的队列,缺少任务跟踪等高级功能。
浙公网安备 33010602011771号