如果您不捕捉子流程中的异常并亲自打印它们,您将看不到它们。以下程序不产生输出:import os
from multiprocessing import Pool
def outputFile(person):
raise Exception("An exception")
pool = Pool(processes=4)
for person in range(100):
pool.apply_async(outputFile, args=(person,))
pool.close()
pool.join()
您需要捕获所有异常并手动打印回溯:
^{pr2}$
输出0: An exception occurred
Traceback (most recent call last):
File "person.py", line 9, in outputFile
raise Exception("An exception")
Exception: An exception
1: An exception occurred
Traceback (most recent call last):
File "person.py", line 9, in outputFile
raise Exception("An exception")
Exception: An exception
...
99: An exception occurred
Traceback (most recent call last):
File "person.py", line 9, in outputFile
raise Exception("An exception")
Exception: An exception
注意:使用print_lock来防止输出被交错。在