Queue是Python中线程安全的队列,位于queue模块,通过from queue import Queue导入,使用Queue()创建实例,支持put()入队、get()出队、empty()判空、full()判满和qsize()查大小,常用于生产者-消费者等多线程数据传递场景。

在 Python 中,Queue 是一个线程安全的队列实现,常用于多线程编程中安全地传递数据。它位于 queue 模块中,使用前需要导入。
导入 Queue 模块
Python 3 中,模块名为 queue(小写),注意不是大写 Q:
from queue import QueueQueue 的基本实例化
通过调用 Queue() 构造函数来创建一个队列对象。可以指定最大容量,也可以不指定(默认无限制):
# 创建一个无限容量的队列 q = Queue()创建一个最多容纳 10 个元素的队列
q = Queue(maxsize=10)
常用操作示例
实例化后,可以进行入队、出队等操作:
立即学习“Python免费学习笔记(深入)”;
出队 get()
item = q.get()
print(item) # 输出: item1
查看队列是否为空
print(q.empty()) # 队列空时返回 True
查看队列是否已满(如果设置了 maxsize)
print(q.full()) # 容量满时返回 True
查看当前队列大小
print(q.qsize())
实际应用场景
Queue 常用于多线程任务调度,比如生产者-消费者模型:
from queue import Queue import threading import timedef producer(q):
for i in range(3):
q.put(f"任务-{i}")
print(f"生产: 任务-{i}")
time.sleep(1)
def consumer(q):
while True:
item = q.get()
if item is None:
break
print(f"消费: {item}")
q.task_done()
q = Queue()
t1 = threading.Thread(target=producer, args=(q,))
t2 = threading.Thread(target=consumer, args=(q,), daemon=True)
t1.start()
t2.start()
t1.join()
q.put(None) # 发送结束信号
基本上就这些。只要导入 Queue 类,调用 Queue() 就能创建实例,再结合 put() 和 get() 使用即可。注意线程安全场景下推荐使用 Queue,避免数据竞争问题。











