在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()
等,可以根据需要进行进一步的操作。