1、構造方法函數
Queue
是構造方法,函數簽名是Queue(maxsize=0)
,其中maxsize
設置隊列的大小。spa
2、實例方法線程
- Queue.qsize(): 返回queue的近似值。注意:qsize>0 不保證(get)取元素不阻塞。qsize<maxsize不保證(put)存元素不會阻塞
- Queue.empty(): 判斷隊列是否爲空。和上面同樣注意
- Queue.full(): 判斷是否滿了。和上面同樣注意
- Queue.put(item, block=True, timeout=None): 往隊列裏放數據。若是滿了的話,blocking = False 直接報 Full異常。若是blocking = True,就是等一會,timeout必須爲 0 或正數。None爲一直等下去,0爲不等,正數n爲等待n秒還不能存入,報Full異常。
- Queue.put_nowait(item): 往隊列裏存放元素,不等待
- Queue.get(item, block=True, timeout=None): 從隊列裏取數據。若是爲空的話,blocking = False 直接報 empty異常。若是blocking = True,就是等一會,timeout必須爲 0 或正數。None爲一直等下去,0爲不等,正數n爲等待n秒還不能讀取,報empty異常
- Queue.get_nowait(item): 從隊列裏取元素,不等待兩個方法跟蹤入隊的任務是否被消費者daemon進程徹底消費
- Queue.task_done(): 表示隊列中某個元素唄消費進程使用,消費結束髮送的信息。每一個get()方法會拿到一個任務,其隨後調用task_done()表示這個隊列,這個隊列的線程的任務完成。就是發送消息,告訴完成啦!
若是當前的join()當前處於阻塞狀態,當前的全部元素執行後都會重啓(意味着收到加入queue的每個對象task_done()調用的信息)
若是調用的次數操做放入隊列的items的個數多的話,會觸發ValueError異常
- Queue.join(): 一直阻塞直到隊列中的全部元素都被取出和執行未完成的個數,只要有元素添加到queue中就會增長。未完成的個數,只要消費者線程調用task_done()代表其被取走,其調用結束。當未完成任務的計數等於0,join()就會不阻塞