目錄
- 一.Python 線程隊列 Queue 分類
- 二.Python 線程優先隊列 PriorityQueue 簡介
- 三.Python 線程優先隊列 PriorityQueue 函數介紹
- 四.Python 線程優先隊列 PriorityQueue 使用
- 五.猜你喜歡
零基礎 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 時,設置的值越小,優先級越高!**
五.猜你喜歡
- Python 條件推導式
- Python 列表推導式
- Python 字典推導式
- Python 函數聲明和調用
- Python 不定長參數 *argc/**kargcs
- Python 匿名函數 lambda
- Python return 邏輯判斷表達式
- Python 字符串/列表/元組/字典之間的相互轉換
- Python 局部變量和全局變量
- Python type 函數和 isinstance 函數區別
- Python is 和 == 區別
- Python 可變數據類型和不可變數據類型
- Python 淺拷貝和深拷貝
- Python 文件讀寫操作
- Python 異常處理
- Python 模塊 import
- Python __name__ == ‘__main__’詳細解釋
- Python 線程創建和傳參
- Python 線程互斥鎖 Lock
- Python 線程時間 Event
- Python 線程條件變量 Condition
- Python 線程定時器 Timer
- Python 線程信號量 Semaphore
- Python 線程障礙對象 Barrier
- Python 線程隊列 Queue – FIFO
- Python 線程隊列 LifoQueue – LIFO
- Python 線程優先隊列 PriorityQueue
未經允許不得轉載:猿說編程 » Python 線程優先隊列 PriorityQueue
本文由博客 - 猿說編程 猿說編程 發布!