这些类和函数提供了关闭队列并将其用作迭代器的工具。
CloseableQueue的Python项目详细描述
CloseableQueue模块包括Closeable*Queue类 以及Closed异常和一些实用函数。
这些类和函数提供了关闭队列的工具 并将其用作迭代器。
Closeable*Queue类
CloseableQueue类添加到Queue.Queue 永久关闭队列的方法。
这旨在为功能提供队列支持 否则将通过使用sentinel值来实现 或其他机制。 这样的解决方案可能特别尴尬 对于多用户队列。
CloseableQueue类同时提供了close方法 还有一个额外的参数last给它的put方法。
CloseableLifoQueue和CloseablePriorityQueue是相似的类 分别属于queue.lifoqueue和queue.priorityqueue的子类。
类的docstrings中提供了更多详细信息 以及他们的方法。
CloseableQueueFactory
此工厂函数用于创建Closeable*Queue类。
使用此方法代替MIXIN类 因为队列模块的类是老式的。
应该可以将此函数应用于其他Queue派生类, 只要它们没有重写get或put (或定义的close或closed)。
例如:
>>> CloseableFooQueue = CloseableQueueFactory(FooQueue, ... "CloseableFooQueue")
Closed异常类
closeablequeue对象的get和put方法 如果对已关闭的队列调用,则可能引发Closed。
请注意,get只会在队列为空时引发Closed。
迭代实用函数
通过 enqueue和dequeue函数。
EnqueueThread函数提供了进一步的便利。
虽然设计用于可关闭队列, 这些函数也可以有意义地应用于其他队列。
有关详细信息,请参阅他们的docstring。
测试
CloseableQueue测试套件基于并重用了中的大部分代码, 标准库队列模块的测试套件。
对closeablequeue类执行回归测试, 除了测试关闭功能之外。
尽管测试相当彻底, 作者决不是并发领域的专家; 更有经验的开发人员的评论是非常受欢迎的。
测试套件可以以简单的使用示例的形式提供指导。
已经有人试图编写一些代码来处理老Python, 然而,测试只在Python2.6上执行, 而且作者对旧版本的经验也很少。
分布
CloseableQueue可以通过pypi获得,也可以从github repo获得。