先进先出队列,优先级队列以及后进先出队列
程序员文章站
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