Python中queue消息隊列模塊


from queue import Queue
from queue import PriorityQueue

print("Queue類實現了一個基本的先進先出(FIFO)容器,使用put()將元素添加到序列尾端,get()從隊列尾部移除元素。\n")

q = Queue()

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

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

print("與標准FIFO實現Queue不同的是,LifoQueue使用后進先出序(會關聯一個棧數據結構)。\n")

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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM