登录
首页 >  文章 >  python教程

Python队列Queue实用教程

时间:2026-02-21 10:50:57 151浏览 收藏

Python中的Queue是queue模块提供的线程安全队列,专为多线程环境下的数据传递而设计,支持轻松创建(可设容量限制)、入队(put)、出队(get)、状态查询(empty、full、qsize)等核心操作,尤其在生产者-消费者模型等并发场景中能有效避免数据竞争,是构建可靠多线程程序不可或缺的工具。

Queue在python的实例化

在 Python 中,Queue 是一个线程安全的队列实现,常用于多线程编程中安全地传递数据。它位于 queue 模块中,使用前需要导入。

导入 Queue 模块

Python 3 中,模块名为 queue(小写),注意不是大写 Q:

from queue import Queue

Queue 的基本实例化

通过调用 Queue() 构造函数来创建一个队列对象。可以指定最大容量,也可以不指定(默认无限制):

# 创建一个无限容量的队列 q = Queue()

创建一个最多容纳 10 个元素的队列

q = Queue(maxsize=10)

常用操作示例

实例化后,可以进行入队、出队等操作:

# 入队 put() q.put("item1") q.put("item2")

出队 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 time

def 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,避免数据竞争问题。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>