欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

先进先出队列,优先级队列以及后进先出队列

程序员文章站 2022-03-14 09:57:57
...
from queue import Queue#先进先出队列
from queue import PriorityQueue #优先级队列---继承了Queue
from queue import LifoQueue#后进先出

#创建队列
q = Queue(4)

#放数据
q.put('成员1')
q.put('成员2')
q.put('成员3')
print(q.full())#判断队列是否已满,满为True,不满为False
print(q.empty())#判断队列是否为空,空为True,非空为False

#按先进先出顺序取数据
q.get()#成员1
q.get()#成员2
q.get()#成员3
print(q.empty())#True


#优先级队列
pq = PriorityQueue()
#任务不要直接put,需要封装到元组当中。
#格式:(数字,消息)

pq.put((1,'文件1'))
pq.put((3,'文件2'))
pq.put((-8,'文件3'))
pq.put((66,'文件4'))
#根据优先级取出数据
#说明:数字越小优先级越高。
#print(pq.get())#(-10, '文件3')
i = 0
while i<pq.qsize():#pq.qsize是队列长度,注意区分线程数量
										#计算方法len(threading.enumerate())
    print(pq.get())

#后进先出队列
lq = LifoQueue()
lq.put('事件1')
lq.put('事件2')
lq.put('事件3')
print(lq.get())#后进先出优先取出:事件3