溫馨提示×

Python多進程編程如何處理異常

小樊
81
2024-11-09 12:11:40
欄目: 編程語言

在Python多進程編程中,處理異常需要使用multiprocessing模塊中的Pool類。當子進程發(fā)生異常時,可以通過捕獲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__":
    # 創(chuàng)建一個包含5個子進程的進程池
    with multiprocessing.Pool(processes=5) as pool:
        # 將worker_func應用于進程池中的每個子進程
        pool.map(worker_func, range(1, 6))

在這個示例中,我們定義了一個名為worker_func的函數(shù),該函數(shù)模擬了一個可能引發(fā)異常的工作任務。我們使用try-except語句捕獲異常,并在發(fā)生異常時打印錯誤消息。

在主程序中,我們創(chuàng)建了一個包含5個子進程的進程池,并使用pool.map()方法將worker_func應用于進程池中的每個子進程。當子進程發(fā)生異常時,異常被捕獲并打印錯誤消息,而不會影響其他子進程的執(zhí)行。

0