Queue類即是一個隊列的同步實現(xiàn)。 隊列長度可為無限或者有限“牵可通過Queue的構造函數(shù)的可選參數(shù)maxsize來設定隊列長度。
將一個值放入隊列中:
import Queue ? ? #導入模塊
queue = Queue.Queue() #實例化一個對象
將一個值放入隊列中:
queue.put(10)
調用隊列的put() 方法在隊尾插入一個項目赔癌。put()有兩個參數(shù)诞外,第一個item為必須的,即插入項目的值灾票;第二個block為可選參數(shù)峡谊,默認為1.如果隊列當前為空且block為1,put()方法就使調用線程暫停刊苍,直到空出一個數(shù)據(jù)單元既们。如果block為0,put方法將引發(fā)Full異常班缰。
將一個值從隊列中取出:
queue.get()
調用隊列對象的get()方法從隊頭刪除并返回一個項目贤壁〉渴啵可選參數(shù)為block埠忘,默認為True。如果隊列為空且block為True,get()就使調用線程暫停,直至有項目可用莹妒。如果隊列為空且block為False,隊列將引發(fā)Empty異常名船。
queue有三種隊列:
1、 python queue模塊的FIFO隊列先進先出 ? ? ? ? class Queue.Queue() ? ? ? ?? ?????FIFO
2旨怠、LIFO類似于堆渠驼, ?先進后出。 ? ? ? ? ? ? ? ? ? ? ? ? ?calss Queue.LifoQueue() ? ? ?????LIFO
3鉴腻、還有一種優(yōu)先級隊列級別越低越先出來迷扇。 ? ? ? ? class Queue.PriorityQueue() ? ? 優(yōu)先級隊列
常用方法:
Queue.qsize() 返回隊列的大小
Queue.empty()如果隊列為空,返回True,反之False
Queue.full()如果隊列滿了爽哎,返回True蜓席,反之False
Queue.full 與 maxsize大小對應
Queue.get([block], [timeout])獲取隊列,timeout等待時間课锌。
Queue.get_nowait() 相當Queue.get(False)
非阻塞 Queue.put_nowait(item)寫入隊列
Queue.put_nowait(item)相當Queue.put(item,False)
Queue.task_done()在完成一項工作之后厨内,Queue.task_done()函數(shù)向任務已經(jīng)完成的隊列發(fā)送一個信號
Queue.join()實際上意味著等到列隊為空,在執(zhí)行別的操作