目錄
- 一.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
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/288547.html
標籤:Python
