在Python中,queue
模塊提供了一個線程安全的隊列類Queue
,可以用于在多線程環境中進行任務調度。下面是一個簡單的示例,展示了如何使用Queue
進行任務調度:
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}")
# 在這里執行任務的具體邏輯
task_queue.task_done()
# 創建并啟動工作線程
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}")
# 在這里執行任務的具體邏輯
task_queue.task_done()
# 創建一個隊列對象
task_queue = Queue()
# 將任務添加到隊列中
task_queue.put("Task 1")
task_queue.put("Task 2")
task_queue.put("Task 3")
# 創建并啟動工作線程
worker_thread = threading.Thread(target=worker)
worker_thread.start()
# 在主線程中等待隊列中的任務完成
task_queue.join()
# 停止工作線程
task_queue.put(None)
worker_thread.join()
運行上述代碼,輸出將會是:
Processing Task 1
Processing Task 2
Processing Task 3
注意,這個示例僅用于演示目的。在實際應用中,你可能需要考慮更多的因素,例如錯誤處理、日志記錄、任務優先級等。此外,Queue
類還提供了其他方法,如qsize()
、empty()
、full()
等,可以根據需要進行進一步的操作。