本文主要是介绍Python开发【模块】:tornado.queues协程的队列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
协程的队列
协调生产者消费者协程.
在Python 3.5, Queue 实现了异步迭代器协议, 所以 consumer() 可以被重写为:
在 4.3 版更改: 为Python 3.5添加asyncfor支持 in Python 3.5.
maxsize
队列中允许的最大项目数.
qsize()
当前队列中的项目数.
put(item,timeout=None)
将一个项目放入队列中, 可能需要等待直到队列中有空间.
返回一个Future对象, 如果超时会抛出tornado.gen.TimeoutError.
put_nowait(item)
非阻塞的将一个项目放入队列中.
如果没有立即可用的空闲插槽, 则抛出QueueFull.
get(timeout=None)
从队列中删除并返回一个项目.
返回一个Future对象, 当项目可用时resolve, 或者在超时后抛出tornado.gen.TimeoutError.
get_nowait()
非阻塞的从队列中删除并返回一个项目.
如果有项目是立即可用的则返回该项目, 否则抛出QueueEmpty.
task_done()
表明前面排队的任务已经完成.
被消费者队列使用. 每个get用来获取一个任务, 随后(subsequent) 调用task_done告诉队列正在处理的任务已经完成.
如果join正在阻塞, 它会在所有项目都被处理完后调起; 即当每个put都被一个task_done匹配.
如果调用次数超过put将会抛出ValueError.
join(timeout=None)
阻塞(block)直到队列中的所有项目都处理完.
返回一个Future对象, 超时后会抛出tornado.gen.TimeoutError异常.
Exceptions
QueueEmpty
exception tornado.queues.QueueEmpty
当队列中没有项目时, 由Queue.get_nowait抛出.
QueueFull
exception tornado.queues.QueueFull
当队列为最大size时, 由Queue.put_nowait抛出.
这篇关于Python开发【模块】:tornado.queues协程的队列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!