文档阅读 - Python queue
Python Queue
模块是为生产者-消费者模型而设计的。在多线程的场景里,我们需要有一个线程安全的手段将信息在线程之间交换。基本上这个模块基于 threading 模块,做了一些锁的操作。这个模块有 Queue
(FIFO), LifoQueue
(LIFO), PriorityQueue
(小值最优先) 三种队列。它设计了几个简单的 API:我们可以通过 put 放个 Python 对象进去,然后使用 get 取出来。get 对象出来时,如果用 get(block=True)
那么操作会堵塞直到有对象取出来;如果用 get(block=True, timeout=3)
那么操作会堵塞三秒直到有对象取出来,否则抛异常 Empty。取出来的对象用 .task_done()
标记取出来的对象处理完了。我们可以用 .qsize()
看队列长度, .empty()
检查是否队列空, full
检查是否队列满, .join()
堵塞队列直到所有对象处理完。