這篇文章給大家分享的是有關python線程隊列中PriorityQueue的使用方法,小編覺得挺實用的,因此分享給大家學習,話不多說,一起往下看吧。
1.線程隊列Queue — FIFO(先進先出隊列),即哪個數據先存入,取數據的時候先取哪個數據,同生活中的排隊買東西;
2.線程隊列LifoQueue — LIFO(先進后出隊列),即哪個數據最后存入的,取數據的時候先取,如同打臺球,先進洞的球最后取出,最后進洞的球最先拿出;
3.線程隊列PriorityQueue — PriorityQueue(優先級隊列),即存入數據時候加入一個優先級,取數據的時候優先級最高的取出;
在數據存入的時候設置優先級,取數據的時候默認按照優先級最高的取出,注意:使用優先級存數據取數據,隊列中的數據必須是同一類型,舉個栗子:班級成績排名/身高排名……
值得注意的是:在將數據存入到優先隊列PriorityQueue時,設置的值越小,優先級越高;
函數不做過多介紹了,已經在 線程隊列Queue 有了詳細講解,兩者都屬于Queue,函數都一樣!
按優先級:不管是數字、字母、列表、元組等(字典、集合沒測),使用優先級存數據取數據,隊列中的數據必須是同一類型,都是按照實際數據的ascii碼表的順序進行優先級匹配,漢字是按照unicode表。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解憂 @Blog(個人博客地址): shuopython.com @WeChat Official Account(微信公眾號):猿說python @Github:www.github.com
@File:python_priorityqueue.py @Time:2019/11/29 1queue5:25
@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 2 3 4 5 6 7 8 9 | [1, 'ace'] [3, 'afd'] [5, '4asdg'] [40, 333] ta 他 你 她 我 |
由此可見:在將數據存入到優先隊列PriorityQueue時,設置的值越小,優先級越高!
以上就是python線程隊列中PriorityQueue的使用方法,詳細使用情況還需要大家自己親自動手使用過才能領會。如果想了解更多相關內容,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。