当我的代码出错时,我希望我的流程退出,但我有一些奇怪的行为,我不知道如何解决。
此代码错误输出并按预期关闭进程:
from multiprocessing import Queue, Pool
def worker(queue):
raise error
task_queue = Queue(10)
the_pool = Pool(1, worker, (task_queue,))
但是这一个旋转了无数的新进程,这些进程都出错了(但是后续进行了新进程):
from multiprocessing import Queue, Pool
def worker(queue):
raise error
task_queue = Queue(10)
the_pool = Pool(1, worker, (task_queue,))
while True: # <-- added this
pass
如何才能有效地阻止第二次分拆无限的新流程?