- import::
import queue
- doc:: queue
queue 模块实现了多生产者、多消费者队列,特别适用于消息必须安全地在多线程间交换的线程编程。
Queue
[[FIFO]] 先进先出队列,[[multiprocessing]] 是其多进程版。
- .task_done(): 告诉队列任务已经完成
- .join(): 阻塞队列,直到所有任务都处理完成
一般 task_done() 和 join() 配合使用,join() 告诉队列任务都已经添加完成,可以执行了,task_doen 告诉队列,这个任务已经完成了,join() 会去判断队列所有任务是否都已经执行完毕。
在 daemon 为 True 的情况下,不使用 task_done 和 join 会导致进程提前结束。
LifoQueue
[[LIFO]] 后进先出队列,其他和 [[queue]] 一致。区别是使用 get() 删除的是最新插入的元素。
ProorityQueue
优先级队列。
SimpleQueue
[[FIFO]] 队列,无任务跟踪等功能