基础代码
from queue import Queue #先进先出队列
from queue import PriorityQueue #优先级队列---继承了Queue
from queue import LifoQueue #后进先出,python独有特点
#创建队列
q = Queue(3)
#放数据
q.put('d1')
q.put('d2')
q.put('d3')
print(q.full()) # 结果:True
print(q.empty()) # 结果:False
#取数据
q.get() #d1
q.get() #d2
q.get() #d3
print(q.empty()) #True
#阻塞
见进程队列阻塞
#队列的优先级
pq = PriorityQueue()
#任务不要直接put,需要封装到元组当中。
格式:(数字,消息)
#说明:数字越小优先级越高。
pq.put((1,'文件1'))
pq.put((0,'文件2'))
pq.put((-10,'文件3'))
pq.put((100,'文件4'))
print(pq.get()) #(-10, '文件3')
i = 0
while i<pq.qsize():
print(pq.get())
‘’’
输出
(-10, ‘文件3’)
(0, ‘文件2’)
(1, ‘文件1’)
(100, ‘文件4’)
‘’’
#后进先出队列
lq = LifoQueue()
lq.put('d1')
lq.put('d2')
lq.put('d3')
print(lq.get()) # 结果 :d3
总结:
put()放入队列
get()取出
empty()判断是否为空
full()判断是否满了
qsize()当前队列中的个数