queue.Queue()


一、構造方法

  Queue是構造方法,函數簽名是Queue(maxsize=0) ,其中maxsize設置隊列的大小。

二、實例方法

  • 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()就會不阻塞


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM