線程隊列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, '小王')
'''