python入门之路——queue模块

queue

当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ、ZeroMQ,炙手可热的Kafka,还有阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。这些都是大型的重量级消息队列,通常应用于商业生产环境。

Python为我们内置了一个微型轻量级的消息队列模块,queue!queue模块主要用于多生产者和消费者模式下的队列实现,特别适合多线程时的消息交换。它实现了常见的锁语法,临时阻塞线程,防止竞争,这有赖于Python对线程的支持。

python入门之路——queue模块

queue模块实现了三种队列

FIFO:先进先出队列,类似管道。元素只能从队头方向一个一个的弹出,只能从队尾一个一个的放入。

python入门之路——queue模块

LIFO:后进先出队列,也就是栈。元素永远只能在栈顶出入。

python入门之路——queue模块

priority queue:优先级队列,每个元素都带有一个优先值,值越小 的越早出去。值相同的,先进入队列的先出去。

python入门之路——queue模块

queue模块定义了下面几个类和异常

python入门之路——queue模块

Queue对象

三种队列类的对象都提供了以下通用的方法:

python入门之路——queue模块

下面是一个等待排队任务如何完成的例子:

python入门之路——queue模块

相关推荐