线程的先进先出,后进先出,以及优先级队列/day19

from queue import Queue           Queue为先进先出队列
from queue import PriorityQueue   PriorityQueue为优先级队列,他继承了Queue队列
from queue import LifoQueue       LifoQueue引入后进先出队列


先进先出队列
q=Queue(3)

放数据
q.put("数据1")
q.put("数据2")
q.put("数据3")
print(q.full())   #True
print(q.empty())  #False
取数据
q.get()
q.get()
q.get()
print(q.empty())  #True

阻塞
见进程队列

优先级队列
队列的优先级
pq=PriorityQueue()
#任务不要直接put,需要封装到元组当中去
#该元组格式:(数字,消息) 说明:数字越小,优先级越高
pq.put((1,"文件1"))
pq.put((0,"文件2"))
pq.put((-90,"文件3"))
pq.put((100,"文件4"))
print(pq.get())           #(-90, '文件3')结果为文件3,把数字最小的取出

i=0
while i<pq.qsize():
    print(pq.get())

"""
结果为:
(-90, '文件3')
(0, '文件2')
(1, '文件1')
(100, '文件4')
"""

后进先出队列
lq=LifoQueue()
lq.put("d1")
lq.put("d2")
lq.put("d3")
print(lq.get())   #结果为d3,把后放进去的先拿出

 

 

猜你喜欢

转载自blog.csdn.net/qq_39112101/article/details/88551418