Python中如何实现基于队列的多线程任务处理
在Python中,可以使用queue模块来实现基于队列的多线程任务处理。具体实现步骤如下:
- 导入所需的模块和库
import threading import queue
- 定义任务函数
def task_func(task): # 处理任务 print(task)
- 定义工作线程
class WorkThread(threading.Thread): def __init__(self, task_queue): threading.Thread.__init__(self) self.task_queue = task_queue def run(self): while True: # 从任务队列中获取任务 task = self.task_queue.get() if task is None: break # 处理任务 task_func(task) # 标记任务完成 self.task_queue.task_done()
- 创建任务队列和工作线程
task_queue = queue.Queue() for i in range(5): WorkThread(task_queue).start()
- 向任务队列中添加任务
task_queue.put("pidancode.com") task_queue.put("皮蛋编程")
- 等待任务队列中的任务处理完成
task_queue.join()
完整代码演示:
import threading import queue def task_func(task): # 处理任务 print(task) class WorkThread(threading.Thread): def __init__(self, task_queue): threading.Thread.__init__(self) self.task_queue = task_queue def run(self): while True: # 从任务队列中获取任务 task = self.task_queue.get() if task is None: break # 处理任务 task_func(task) # 标记任务完成 self.task_queue.task_done() task_queue = queue.Queue() for i in range(5): WorkThread(task_queue).start() task_queue.put("pidancode.com") task_queue.put("皮蛋编程") task_queue.join()
输出结果:
pidancode.com 皮蛋编程
相关文章