queue队列是并发利器

断了今生、忘了曾经 提交于 2020-03-08 22:17:22
import queue
'''
此包中的常用方法(q = Queue.Queue()):
q.qsize() 返回队列的大小
q.empty() 如果队列为空,返回True,反之False
q.full() 如果队列满了,返回True,反之False
q.full 与 maxsize 大小对应
q.get([block[, timeout]]) 获取队列,timeout等待时间
q.get_nowait() 相当q.get(False)
非阻塞 q.put(item) 写入队列,timeout等待时间
q.put_nowait(item) 相当q.put(item, False)
q.task_done() 在完成一项工作之后,q.task_done() 函数向任务已经完成的队列发送一个信号
q.join() 实际上意味着等到队列为空,再执行别的操作
'''
qu = queue.Queue(5)  #先进先出
qu.put("dxvxc1")
qu.put("dxvxc2")
qu.put("dxvxc3")
qu.put("dxvxc2")
qu.put("dxvxc3")
print(qu.join())


print(qu.full()) #  如果队列满了,返回True,反之False
print(qu.get())
print(qu.get())      #get方法每获取一条后就会少一条
print(qu.get())
print(qu.full())
print("-----------------------------------------")

qq = queue.LifoQueue() #先进后出
qq.put("11111")
qq.put("222222")
qq.put("333333")
print(qq.qsize())
print(qq.empty())    #如果队列为空,返回True,反之False
print(qq.get())



qy = queue.PriorityQueue()  #数值越小,优先级越低越先出来
qy.put("dsdy")
qy.put("dsdz")
qy.put("dsdx")

qy.put("7")
qy.put("9")
qy.put("1")
qy.put("6")

print(qy.get())
print(qy.get())

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!