Python中的queue模塊提供了多種隊列類型,可以用于實現線程間的安全通信。常見的隊列類型有以下幾種:
put(item, block=True, timeout=None):將item放入隊列中,block為True時表示如果隊列已滿則等待,timeout為等待時間。
get(block=True, timeout=None):從隊列中取出一個元素,block為True時表示如果隊列為空則等待,timeout為等待時間。
qsize():返回隊列中元素的數量。
empty():判斷隊列是否為空。
full():判斷隊列是否已滿。
LifoQueue:后進先出(LIFO)隊列,與棧的行為類似。常用函數與Queue相同。
PriorityQueue:優先級隊列,元素按照優先級從小到大排序。常用函數與Queue相同。
SimpleQueue:簡單隊列,只包含put和get方法,無法設置阻塞和超時等參數。
下面是一個使用Queue隊列的示例代碼:
from queue import Queue
# 創建一個隊列對象
q = Queue()
# 向隊列中放入元素
q.put(1)
q.put(2)
q.put(3)
# 從隊列中取出元素
print(q.get()) # 輸出1
print(q.get()) # 輸出2
print(q.get()) # 輸出3
# 判斷隊列是否為空
print(q.empty()) # 輸出True
需要注意的是,隊列對象中的put和get方法會自動實現線程間的同步,因此可以在多線程環境下安全使用。