Python中queue消息队列模块

Posted John-Python

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中queue消息队列模块相关的知识,希望对你有一定的参考价值。

from queue import Queue
from queue import PriorityQueue

print("Queue类实现了一个基本的先进先出(FIFO)容器,使用put()将元素添加到序列尾端,get()从队列尾部移除元素。
")

q = Queue()

for i in range(3):
    q.put(i)

while not q.empty():
    print(q.get())

print("与标准FIFO实现Queue不同的是,LifoQueue使用后进先出序(会关联一个栈数据结构)。
")

from queue import LifoQueue

q1 = LifoQueue()

for i in range(3):
    q1.put(i)

while not q1.empty():
    print(q1.get())

print("除了按元素入列顺序外,有时需要根据队列中元素的特性来决定元素的处理顺序。例如,老板的打印任务可能比研发的打印任务优先级更高。PriorityQueue依据队列中内容的排序顺序(sort order)来决定那个元素将被检索。")


class Job(object):
    def __init__(self, priority, description):
        self.priority = priority
        self.description = description
        print(New job:, description)
        return

    def __lt__(self, other):
        return self.priority < other.priority


q2 = PriorityQueue()

q2.put(Job(5, Mid-level job))
q2.put(Job(10, Low-level job))
q2.put(Job(1, Important job))  # 数字越小,优先级越高

while not q2.empty():
    next_job = q2.get()  # 可根据优先级取序列
    print(Processing job, next_job.description)

 

以上是关于Python中queue消息队列模块的主要内容,如果未能解决你的问题,请参考以下文章

day42——queue模块

python—多进程的消息队列

Python进阶第二篇多线程消息队列queue

Python队列queue模块

python消息队列Queue

41. Python Queue 多进程的消息队列 PIPE