Python中如何实现基于队列的多进程任务处理
Python中可以使用multiprocessing和queue模块来实现基于队列的多进程任务处理。
具体步骤如下:
- 创建一个队列,用于存放任务。
import queue task_queue = queue.Queue()
- 创建多个进程,每个进程都从任务队列中获取任务并处理。
import multiprocessing def worker(task_queue): while True: task = task_queue.get() if task is None: break # 处理任务的代码 print(task) processes = [] for i in range(4): p = multiprocessing.Process(target=worker, args=(task_queue,)) p.start() processes.append(p)
- 向任务队列中添加任务。
task_queue.put("pidancode.com") task_queue.put("皮蛋编程")
- 等待所有进程处理完任务并退出。
for i in range(len(processes)): task_queue.put(None) for p in processes: p.join()
完整代码示例:
import multiprocessing import queue def worker(task_queue): while True: task = task_queue.get() if task is None: break # 处理任务的代码 print(task) if __name__ == "__main__": task_queue = queue.Queue() processes = [] for i in range(4): p = multiprocessing.Process(target=worker, args=(task_queue,)) p.start() processes.append(p) task_queue.put("pidancode.com") task_queue.put("皮蛋编程") for i in range(len(processes)): task_queue.put(None) for p in processes: p.join()
运行结果:
pidancode.com 皮蛋编程
相关文章