queue介绍
- queue是python的标准库,俗称队列.可以直接import引用,在python2.x中,模块名为Queue。python3直接queue即可
-
在python中,多个线程之间的数据是共享的,多个线程进行数据交换的时候,不能够保证数据的安全性和一致性,所以当多个线程需要进行数据交换的时候,队列就出现了,队列可以完美解决线程间的数据交换,保证线程间数据的安全性和一致性
queue模块有三种队列及构造函数:
- Python queue模块的FIFO队列先进先出。 class queue.Queue(maxsize)
- LIFO类似于堆,即先进后出。 class queue.LifoQueue(maxsize)
- 还有一种是优先级队列级别越低越先出来。 class queue.PriorityQueue(maxsize)
一:FIFO先进先出
FIFO即First in First Out,先进先出。Queue提供了一个基本的FIFO容器,使用方法很简单,maxsize是个整数,指明了队列中能存放的数据个数的上限。一旦达到上限,插入会导致阻塞,直到队列中的数据被消费掉。如果maxsize小于或者等于0,队列大小没有限制。
1 import Queue 2 q = Queue.Queue() 3 for i in range(5): 4 q.put(i) 5 while not q.empty(): 6 print q.get()
输出:
0
1
2
3
4
二:LIFO先进先出
LIFO即Last in First Out,后进先出。与栈的类似,使用也很简单,maxsize用法同上
1 import Queue 2 3 q = Queue.LifoQueue() 4 5 for i in range(5): 6 q.put(i) 7 8 while not q.empty(): 9 print q.get()
输出:
4
3
2
1
0