在Python中,queue
模塊提供了一個線程安全的隊列類Queue
,可以用于在多線程環(huán)境中進行任務(wù)調(diào)度。下面是一個簡單的示例,展示了如何使用Queue
進行任務(wù)調(diào)度:
Queue
模塊:from queue import Queue
Queue
對象:task_queue = Queue()
task_queue.put("Task 1")
task_queue.put("Task 2")
task_queue.put("Task 3")
import threading
def worker():
while True:
task = task_queue.get()
if task is None:
break
print(f"Processing {task}")
# 在這里執(zhí)行任務(wù)的具體邏輯
task_queue.task_done()
# 創(chuàng)建并啟動工作線程
worker_thread = threading.Thread(target=worker)
worker_thread.start()
task_queue.join()
task_queue.put(None)
worker_thread.join()
完整的示例代碼如下:
from queue import Queue
import threading
def worker():
while True:
task = task_queue.get()
if task is None:
break
print(f"Processing {task}")
# 在這里執(zhí)行任務(wù)的具體邏輯
task_queue.task_done()
# 創(chuàng)建一個隊列對象
task_queue = Queue()
# 將任務(wù)添加到隊列中
task_queue.put("Task 1")
task_queue.put("Task 2")
task_queue.put("Task 3")
# 創(chuàng)建并啟動工作線程
worker_thread = threading.Thread(target=worker)
worker_thread.start()
# 在主線程中等待隊列中的任務(wù)完成
task_queue.join()
# 停止工作線程
task_queue.put(None)
worker_thread.join()
運行上述代碼,輸出將會是:
Processing Task 1
Processing Task 2
Processing Task 3
注意,這個示例僅用于演示目的。在實際應(yīng)用中,你可能需要考慮更多的因素,例如錯誤處理、日志記錄、任務(wù)優(yōu)先級等。此外,Queue
類還提供了其他方法,如qsize()
、empty()
、full()
等,可以根據(jù)需要進行進一步的操作。