我一直在使用以下方法在 python 中实现并行子进程:
pool = multiprocessing.Pool(processes=4)
pool.map_async(my_parallel_func ....)
pool.close()
pool.join()
这些任务将运行几分钟。而且我注意到在此pool.join()
阻塞等待期间,我无法按Ctrl+c取消主脚本。如果我点击Ctrl+ c,我会得到一个堆栈打印,程序不会停止,但它会变成一个僵尸进程。我必须手动杀死每个子进程。
如何使程序通过Ctrl+退出c,并同时终止所有子进程?