温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python线程队列中PriorityQueue的使用方法

发布时间:2020-06-12 10:09:58 来源:亿速云 阅读:939 作者:Leah 栏目:编程语言

这篇文章给大家分享的是有关python线程队列中PriorityQueue的使用方法,小编觉得挺实用的,因此分享给大家学习,话不多说,一起往下看吧。

一.队列Queue分类:

1.线程队列Queue — FIFO(先进先出队列),即哪个数据先存入,取数据的时候先取哪个数据,同生活中的排队买东西;

2.线程队列LifoQueue — LIFO(先进后出队列),即哪个数据最后存入的,取数据的时候先取,如同打台球,先进洞的球最后取出,最后进洞的球最先拿出

3.线程队列PriorityQueue — PriorityQueue(优先级队列),即存入数据时候加入一个优先级,取数据的时候优先级最高的取出;

二.优先队列PriorityQueue简介

在数据存入的时候设置优先级,取数据的时候默认按照优先级最高的取出,注意:使用优先级存数据取数据,队列中的数据必须是同一类型,举个栗子:班级成绩排名/身高排名……

值得注意的是:在将数据存入到优先队列PriorityQueue时,设置的值越小,优先级越高;

三.优先队列PriorityQueue函数介绍

函数不做过多介绍了,已经在 线程队列Queue 有了详细讲解,两者都属于Queue,函数都一样!

四.优先队列PriorityQueue使用

按优先级:不管是数字、字母、列表、元组等(字典、集合没测),使用优先级存数据取数据,队列中的数据必须是同一类型,都是按照实际数据的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的使用方法,详细使用情况还需要大家自己亲自动手使用过才能领会。如果想了解更多相关内容,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI