博客导语
多线程不推荐直接用全局变量通信,极易产生线程安全问题。Queue 是 Python 线程专属安全队列,自带锁机制,是线程间数据通信标准方案。
一、Queue核心特性
线程安全:内置互斥锁,多线程读写无错乱
先进先出 FIFO
支持队列阻塞、自动等待
二、常用方法
put():存入数据,队列满则阻塞
get():取出数据,队列为空则阻塞
qsize():获取队列数量
empty()/full():判断状态
三、生产者消费者实战(线程通信经典模型)
import threading from queue import Queue import time q = Queue(maxsize=5) def producer(): for i in range(10): q.put(f"数据{i}") print(f"生产数据{i}") time.sleep(0.2) def consumer(): while True: data = q.get() print(f"消费 {data}") q.task_done() time.sleep(0.3) t1 = threading.Thread(target=producer) t2 = threading.Thread(target=consumer) t1.start() t2.start()四、核心优势总结
Queue 彻底替代全局变量传参,解耦生产者与消费者,天然线程安全,是多线程项目标准写法。