Queue是python标准库中的线程安全的队列(FIFO)实现,提供了一个适用于多线程编程的先进先出的数据结构,即队列,用来在生产者和消费者线程之间的信息传递
基本FIFO队列
class queue.Queue(maxsize=0)
FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。
In [16]: from queue import Queue
In [17]: q=Queue() #必须先Queue类实例化
In [18]: for i in range(5):
...: q.put(i)
...:
In [19]: q.get() #是各迭代器
Out[19]: 0
In [20]: while q.empty():
...: print(q.get())
...:
...:
In [21]: while not q.empty():
...: print(q.get()) #以迭代一次,所以只返回4个数
...:
...:
1
2
3
4
LIFO队列
class queue.LifoQueue(maxsize=0)
LIFO即Last in First Out,后进先出。与栈的类似,使用也很简单,maxsize用法同上
In [22]: from queue import LifoQueue
In [23]: q=LifoQueue()
In [24]: for i in range(5):
...: q.put(i)
...:
In [25]: while not q.empty():
...: print(q.get())
...:
4
3
2
1
0