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时,设置的值越小,优先级越高!


五.猜你喜欢

  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
喜欢(2) 打赏

评论抢沙发

评论前必须登录!

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏