线程Queue有三种方式:
第一种和进程Queue一样 先进先出:
import queue
q = queue.Queue(3)
q.put(1,block=True,timeout=2)
q.put(2,block=True,timeout=2)
q.put(3,block=True,timeout=2)
print(q.get())
print(q.get())
print(q.get())
结果:
1
2
3
第二种是后进先出(堆栈)lifo(last in first out):
import queue
q = queue.LifoQueue(3)
q.put(1,block=True,timeout=2)
q.put(2,block=True,timeout=2)
q.put(3,block=True,timeout=2)
print(q.get())
print(q.get())
print(q.get())
结果:
3
2
1
第三种,可以设置队列的优先级:
import queue
q = queue.PriorityQueue(3)
q.put((-1,11))
q.put((-11,22))
q.put((1,33))
print(q.get())
print(q.get())
print(q.get())
结果:
(-11, 22)
(-1, 11)
(1, 33)
可以用元组或者列表的形式,第一个元素为优先级,越小优先级越高,第二个为要排列的元素。