python多線程編程之Queue——put/get方法


 
 

python 的 Queue 模塊提供了一種適用於多線程編程的 FIFO 實現。它可用於在生產者和消費者之間線程安全地傳遞消息或其它數據,因此多個線程可以共用同一個 Queue 實例。

Queue 類實現了一個基本的先進先出(FIFO)容器,使用 put() 將元素添加到序列尾端,get() 從隊列尾部移除元素。

Queue 介紹:

  • queue 是 python 中的標准庫,俗稱隊列,可以直接 import 引用
  • 在 python 中,多個線程之間的數據是共享的,多個線程進行數據交換的時候,不能夠保證數據的安全性和一致性,所以當多個線程需要進行數據交換的時候,隊列就出現了。隊列可以完美解決線程間的數據交換,保證線程間數據的安全性和一致性

 

Queue 模塊中的常用方法:

Queue.Queue(maxsize=0)   FIFO, 若是maxsize小於1就表示隊列長度無限

Queue.qsize()   返回隊列的大小 

Queue.empty()   若是隊列為空,返回True,反之False 

Queue.full()   若是隊列滿了,返回True,反之False

Queue.get([block, [timeout]])   讀隊列,timeout為等待時間 

Queue.put(item, [block, [timeout]])   寫隊列,timeout為等待時間 

Queue.queue.clear()   清空隊列

 

把 Queue 中的所有元素轉換為 list:

# q 為隊列
1
def get_queue_values(q): 2 ret = [] 3 while True: 4 if q.qsize() > 0: 5 ret.append(q.get()) 6 else: 7 break 8 return ret

 


免責聲明!

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



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