queue.Queue()

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()就會不阻塞
相關文章
相關標籤/搜索