忽略/杀死在多处理中抛出异常的子进程

时间:2018-12-04 11:25:54

标签: python python-2.7 multiprocessing

如何在不更改方法out的情况下更新以下代码,使[1, 4]包含f()。当前会返回一个空列表。

from multiprocessing import Pool

def f(x):
    if x == 3:
        raise Exception('3 not supported')
    return x*x

if __name__ == '__main__':
    p = Pool(3)
    out = []
    try:
        for v in p.map(f, [1, 2, 3]):
            out.append(v)
    except Exception:
        pass
    p.close()
    p.join()
    print out

0 个答案:

没有答案