模塊 queue 實現了線程安全的 FIFO 隊列(first-in first-out)。它被用於在不同的線程之間安全傳遞消息,例如生產者和消費者線程。
基本的 FIFO 隊列
類 Queue 實現了基本的 FIFO 容器,使用方法 put() 添加元素到隊列尾部,get() 方法從隊列頭部獲取信息。
執行:
LIFO 隊列
LIFO 隊列(last-in first-out)正好相反,最後一個添加進去的元素,第一個取出。類似數據結構棧(Stack)。
執行:
優先級隊列 Priority Queue
有時候從隊列處理數據的順序要依賴他們的某些屬性,而不僅僅是他們添加進隊列的順序。這樣的隊列叫做優先級隊列(Priority Queue),它依賴隊列中元素的優先級處理元素。查看下面的例子。
執行:
本例使用多個線程從隊列獲取 Job,當 get() 獲取 Job 時,會根據 Job 定義好的優先級來獲取元素,比較值越小,優先級越高。
閱讀更多 趣喜歡編程 的文章