Python3 Queue 深度解析

掌握 Python 标准库中的队列模块,轻松实现线程安全的数据结构

什么是 Queue?

在 Python3 中,queue 模块提供了多生产者、多消费者队列的线程安全实现, 常用于多线程编程中协调线程之间的数据传递。

它是线程安全的,无需额外加锁,非常适合在并发环境中使用。

Queue 的主要类型

基本用法示例

1. FIFO 队列(Queue)

import queue

q = queue.Queue()

q.put('first')
q.put('second')
q.put('third')

print(q.get())  # 输出: first
print(q.get())  # 输出: second

2. LIFO 队列(LifoQueue)

import queue

stack = queue.LifoQueue()

stack.put('A')
stack.put('B')
stack.put('C')

print(stack.get())  # 输出: C
print(stack.get())  # 输出: B

3. 优先级队列(PriorityQueue)

import queue

pq = queue.PriorityQueue()

pq.put((2, 'medium priority'))
pq.put((1, 'high priority'))
pq.put((3, 'low priority'))

print(pq.get())  # 输出: (1, 'high priority')
print(pq.get())  # 输出: (2, 'medium priority')

常用方法

多线程实战示例

以下是一个简单的生产者-消费者模型:

import threading
import queue
import time

def producer(q):
    for i in range(5):
        q.put(f"item-{i}")
        print(f"Produced item-{i}")
        time.sleep(0.5)

def consumer(q):
    while True:
        item = q.get()
        if item is None:
            break
        print(f"Consumed {item}")
        q.task_done()

q = queue.Queue()
t1 = threading.Thread(target=producer, args=(q,))
t2 = threading.Thread(target=consumer, args=(q,))

t1.start()
t2.start()

t1.join()
q.join()  # 等待所有任务完成
q.put(None)  # 通知消费者退出

注意事项

相关资源

Nothing On You-探索你的独特魅力 Python PIL库怎么安装-完整指南 天猫 iPhone 17 发货时间-最新上市信息与预售安排 台灣 iPhone 11 有雙卡嗎?完整解析與使用指南 Proscenic 智能家居|高效清洁,智慧生活 Nothing On Me 中文翻译-歌词、含义与背景解析 Python IDLE怎么运行?新手入门指南|Python学习专题 Potential近义词大全|英语词汇学习专题 Python中的Encoding详解|字符编码入门指南 IronPython 可以卸载吗?完整指南与常见问题解答 Monchèri-优雅法式甜点与生活方式 Python3 IDE 安装入口-快速开始 Python 编程 “complainment”存在吗?——英语词汇探秘专题页 OpenNPV怎么下载-78TP指南与使用说明 Nintendo Switch 专题页面-探索任天堂掌机与主机的完美融合 MicroPython 中文文档-快速入门与开发指南 It Is Pleasant to Do – 发现生活中的愉悦小事 Pioneer电视能连WiFi吗?全面解析与使用指南 Proscenic吹风机-智能恒温护发,快速干发新体验 鸽子的世界-探索城市中的和平使者 始祖鸟 Incendo Hoody 防风连帽夹克-轻量透气 高性能户外装备 Pioneer电视机怎么投屏?详细教程与常见问题解答 Pioneer翻译中文-先锋精神与语言桥梁 Pionneer加速器-高速稳定的游戏与网络加速服务 iPhone Air 港版-轻薄旗舰,尽在香港特别版 Pokémon HOME 是什么?宝可梦云存储服务详解 Python中list怎么用-列表基础、操作与实用技巧 初代 iPhone 发布时间-历史回顾与影响 Python 字符串(String)详解-基础、方法与实用技巧 Shopee主图尺寸指南-2026最新推荐规格 Python中的sep参数详解-控制print输出分隔符 Python timeit 函数详解-高效性能测试工具 Python编程利器:Spyder集成开发环境详解 多奈哌齐(Donepezil)是什么药?作用、副作用与使用指南 iPhone 11 退回旧版本 iOS 系统完整指南 普鲁卡因(Procaine)是什么药?作用、用途与注意事项详解 “Something”怎么拼写?正确拼写、发音与用法详解 Python库大全-常用第三方库介绍与使用指南 日本限定粉色 iPhone|优雅与科技的完美融合 香港 iPhone 16 最新資訊|規格、價格、購買指南 Python str转int方法详解-字符串转整数完整指南 PythonTip-Python编程学习与技巧分享平台 Python中int类型详解-整数数据类型指南 Pioneer蓝牙是哪个键?一键连接指南|Pioneer音响使用帮助 Pioneer电视怎么投屏?详细教程与常见问题解答 iPhone 单摄像头手机专题-简约设计,经典影像 Shein企业文化|创新、敏捷与全球时尚的融合 MicroPython编程入门与实战指南|轻量级Python嵌入式开发 Properazine是什么药?作用、副作用与使用说明-药物百科 Shopee商家版-轻松开店,高效经营东南亚电商 Something 所有变形-全面解析与创意展示 Pinion最低齿比详解-自行车传动系统专题 Pioneer意思-先驱者、开拓者的定义与历史故事 人道原则|尊重、关怀与共情的基石 Switch如何登录eShop?详细图文教程|Nintendo eShop使用指南 银龄生活|关爱长者,乐享晚年 iPhone 17 美版和国行区别详解|全面对比与选购指南 Open On-探索开放世界与无限可能 Championship 2026-全球顶级赛事专题 Shopee虾皮网-东南亚领先的跨境电商平台 Python while True 循环详解-无限循环的正确使用方法 Tienda Oficial de Argentina-eShop Argentina Pythonend怎么用?全面入门指南与使用教程 iPhone 17 橙色叫啥?最新配色名称与发布信息全解析 iPhone 17 AI 功能详解-智能体验全面升级 大象世界:探索地球上最大的陆地哺乳动物 iPhone欧美日韩版差异详解|功能、频段、外观与购买建议 Python自带的IDE功能强大吗?全面解析IDLE的功能与局限 iPhone 17 台灣版|最新消息、規格與預購資訊 Python算法入门与实战|高效编程从算法开始 Be Wise to Do Something-智慧行动,成就更好的自己 淘宝 iPhone 17 发货时间查询-最新上市信息与购买指南 Python编程入门与实战指南|学习Python从零开始 Python True-探索 Python 编程语言的真相与魅力 Champion长袖T恤-舒适经典,潮流之选 iPhone 17是哪里产的?最新产地信息与供应链解析 Python中print()函数的用法详解-快速入门指南 Python 读音详解|正确发音、音频示例与常见误区 SHEIN模特风采|时尚穿搭灵感与幕后故事 Shine电商公司-引领未来购物体验 CharacterPrecision-字符精度探索专题 港服 Nintendo eShop-香港任天堂78TP遊戲商店 Pioneer电视信号源切换指南-轻松掌握多设备切换技巧 食欲不振?了解原因、应对方法与健康建议|Have No Appetite For Bon Appétit 法语发音指南-正确读法、音频示范与文化小知识 宝可梦手机版专题-探索口袋妖怪的掌上世界 OpenCV 78TP中文专题页-开源计算机视觉库 Endorphio的隐喻与寓意|探索内在喜悦的象征意义 Python while 循环详解-入门到实践 iPhone 14 欧美版区别详解|功能、频段、型号对比 Pioneer是什么牌子的电视?品牌历史、产品特点与市场现状全解析 Lithosphere 期刊7LONGWEN|地球科学与岩石圈研究权威期刊 “on”是“open”的简写吗?深入解析常见英文缩写误区 Pioneer是什么牌子衣服?品牌介绍、风格与购买指南 eshop怎么进?Nintendo eShop 入口指南与常见问题解答 Prorino怎么样?全面评测与用户真实体验分享 用 Python 开启编程之旅-入门、实战与资源指南 “Expedition”有贬义吗?词义解析与使用指南 Switch怎么登陆eShop?详细图文教程-任天堂eShop登录指南 You Are Nothing-探索存在与虚无的边界