Python 線程優先隊列 PriorityQueue - Python零基礎入門教程


目錄

零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門

在  線程隊列 Queue / 線程隊列 LifoQueue  文章中分別介紹了先進先出隊列 Queue 和先進后出隊列 LifoQueue ,而今天給大家介紹的是最后一種:優先隊列 PriorityQueue ,對隊列中的數據按照優先級排序,那么具體怎么用呢?

一.Python 線程隊列 Queue 分類

  • 1.線程隊列 Queue — FIFO(先進先出隊列),即哪個數據先存入,取數據的時候先取哪個數據,同生活中的排隊買東西;
  • 2.線程隊列 LifoQueue — LIFO(先進后出隊列),即哪個數據最后存入的,取數據的時候先取,同生活中手槍的彈夾,子彈最后放入的先打出;
  • 3.線程隊列 PriorityQueue — PriorityQueue(優先級隊列),即存入數據時候加入一個優先級,取數據的時候優先級最高的取出;

二.Python 線程優先隊列 PriorityQueue 簡介

在數據存入的時候設置優先級,取數據的時候默認按照優先級最高的取出,注意:使用優先級存數據取數據,隊列中的數據必須是同一類型,舉個栗子:班級成績排名/身高排名……

值得注意的是:在將數據存入到優先隊列 PriorityQueue 時,設置的值越小,優先級越高;

三.Python 線程優先隊列 PriorityQueue 函數介紹

函數不做過多介紹了,已經在  線程隊列 Queue  有了詳細講解,兩者都屬於 Queue ,函數都一樣!

四.Python 線程優先隊列 PriorityQueue 使用

按優先級:不管是數字、字母、列表 list元組 tuple 等(字典 dict集合 set 沒測),使用優先級存數據取數據,隊列中的數據必須是同一類型,都是按照實際數據的 ascii 碼表的順序進行優先級匹配,漢字是按照 unicode 表。

# !usr/bin/env python
# -*- coding:utf-8 _*-
"""
@Author:猿說編程
@Blog(個人博客地址): www.codersrc.com
@File:Python 線程優先隊列 PriorityQueue.py
@Time:2021/05/05 07:37
@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

import queue
import threading
import time

q = queue.PriorityQueue()
q.put([1, 'ace'])
q.put([40, 333])
q.put([3, 'afd'])
q.put([5, '4asdg'])
# 1是級別最高的,
while not q.empty():  # 不為空時候執行
    print(q.get())



q = queue.PriorityQueue()
q.put('我')
q.put('你')
q.put('他')
q.put('她')
q.put('ta')
while not q.empty():
    print(q.get())


'''
輸出結果:

[1, 'ace']
[3, 'afd']
[5, '4asdg']
[40, 333]
ta
他
你
她
我
'''

**     由此可見:在將數據存入到優先隊列 PriorityQueue 時,設置的值越小,優先級越高!**

五.猜你喜歡

  1. Python 條件推導式
  2. Python 列表推導式
  3. Python 字典推導式
  4. Python 函數聲明和調用
  5. Python 不定長參數 *argc/**kargcs
  6. Python 匿名函數 lambda
  7. Python return 邏輯判斷表達式
  8. Python 字符串/列表/元組/字典之間的相互轉換
  9. Python 局部變量和全局變量
  10. Python type 函數和 isinstance 函數區別
  11. Python is 和 == 區別
  12. Python 可變數據類型和不可變數據類型
  13. Python 淺拷貝和深拷貝
  14. Python 文件讀寫操作
  15. Python 異常處理
  16. Python 模塊 import
  17. Python __name__ == ‘__main__’詳細解釋
  18. Python 線程創建和傳參
  19. Python 線程互斥鎖 Lock
  20. Python 線程時間 Event
  21. Python 線程條件變量 Condition
  22. Python 線程定時器 Timer
  23. Python 線程信號量 Semaphore
  24. Python 線程障礙對象 Barrier
  25. Python 線程隊列 Queue – FIFO
  26. Python 線程隊列 LifoQueue – LIFO
  27. Python 線程優先隊列 PriorityQueue

未經允許不得轉載:猿說編程 » Python 線程優先隊列 PriorityQueue

本文由博客 - 猿說編程 猿說編程 發布!


免責聲明!

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



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