天天看點

線程隊列queue

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

繼續閱讀