Python中如何实现基于队列的多进程任务处理

2023-04-11 00:00:00 队列 进程 如何实现

Python中可以使用multiprocessing和queue模块来实现基于队列的多进程任务处理。

具体步骤如下:

  1. 创建一个队列,用于存放任务。
import queue

task_queue = queue.Queue()
  1. 创建多个进程,每个进程都从任务队列中获取任务并处理。
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)
  1. 向任务队列中添加任务。
task_queue.put("pidancode.com")
task_queue.put("皮蛋编程")
  1. 等待所有进程处理完任务并退出。
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
皮蛋编程

相关文章