温馨提示×

Python多进程编程如何处理异常

小樊
82
2024-11-09 12:11:40
栏目: 编程语言

在Python多进程编程中,处理异常需要使用multiprocessing模块中的Pool类。当子进程发生异常时,可以通过捕获Exception来处理。以下是一个简单的示例:

import multiprocessing
import time

def worker_func(num):
    try:
        print(f"Worker: {num}")
        time.sleep(1)
        if num == 3:
            raise ValueError("An error occurred in worker function.")
    except Exception as e:
        print(f"Exception occurred in worker function: {e}")

if __name__ == "__main__":
    # 创建一个包含5个子进程的进程池
    with multiprocessing.Pool(processes=5) as pool:
        # 将worker_func应用于进程池中的每个子进程
        pool.map(worker_func, range(1, 6))

在这个示例中,我们定义了一个名为worker_func的函数,该函数模拟了一个可能引发异常的工作任务。我们使用try-except语句捕获异常,并在发生异常时打印错误消息。

在主程序中,我们创建了一个包含5个子进程的进程池,并使用pool.map()方法将worker_func应用于进程池中的每个子进程。当子进程发生异常时,异常被捕获并打印错误消息,而不会影响其他子进程的执行。

0