线程队列queue
线程队列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
-
- 用途:三级菜单
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
-
- 用途:会员优先
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, '小王')
'''