queue:线程之间数据安全的容器队列
原理:加锁 + 链表
Queue 先进先出
import queue q=queue.Queue(4) #fifo 先进先出的队列 4:设置列表长度为4,只能放4个数 q.put(1) #放入 print(q.get()) #取出 try: q.get_nowait() #q.get_nowait()当queue为空时不会阻塞直接报错queue.Empty,可以进行异常处理,为空时直接退出 except queue.Empty:pass
LifoQueue 后进先出
import queue q=queue.LifoQueue() #后进先出 #栈 q.put(1) q.put(2) q.put(3) print(q.get()) print(q.get()) print(q.get()) 得: 3 2 1
PriorityQueue 优先级
import queue q=queue.PriorityQueue() q.put((3,'小王')) q.put((1,'小李')) q.put((2,'小张')) print(q.get()) print(q.get()) print(q.get()) ''' (1, '小李') (2, '小张') (3, '小王') '''