Python 模塊 queue-線程安全的 FIFO 隊列

Python 模塊 queue-線程安全的 FIFO 隊列

模塊 queue 實現了線程安全的 FIFO 隊列(first-in first-out)。它被用於在不同的線程之間安全傳遞消息,例如生產者和消費者線程。

基本的 FIFO 隊列


類 Queue 實現了基本的 FIFO 容器,使用方法 put() 添加元素到隊列尾部,get() 方法從隊列頭部獲取信息。

Python 模塊 queue-線程安全的 FIFO 隊列

執行:

Python 模塊 queue-線程安全的 FIFO 隊列

LIFO 隊列


LIFO 隊列(last-in first-out)正好相反,最後一個添加進去的元素,第一個取出。類似數據結構棧(Stack)。

Python 模塊 queue-線程安全的 FIFO 隊列

執行:

Python 模塊 queue-線程安全的 FIFO 隊列

優先級隊列 Priority Queue


有時候從隊列處理數據的順序要依賴他們的某些屬性,而不僅僅是他們添加進隊列的順序。這樣的隊列叫做優先級隊列(Priority Queue),它依賴隊列中元素的優先級處理元素。查看下面的例子。

Python 模塊 queue-線程安全的 FIFO 隊列

執行:

Python 模塊 queue-線程安全的 FIFO 隊列

本例使用多個線程從隊列獲取 Job,當 get() 獲取 Job 時,會根據 Job 定義好的優先級來獲取元素,比較值越小,優先級越高。


分享到:


相關文章: