大概描述一下整体程序:
我写了一个用multiprocessing库的程序,创建有循环的职程作为进程,在jobqueue队列中不断获取任务加以处理,达到条件后自动终止,主程序用for p in processing:p.join(),等待子进程全部自我终止,以进行后续处理。然而,该程序
在投入的初始任务较轻时候,顺利退出,返回主进程。然而,到了一个阈值的时候(但工作量怎么看也不至于崩溃),子进程经过debug发现正确地触发了终止条件,然而join()依然阻塞,进入任务管理器发现这些子进程占用cpu 0 %,是纯纯的僵尸进程,这我非常不解,因为已经正确地触发终止,即使我把开启的进程数量调整到1,也会出现这种状况(僵尸化)。我进入任务管理器,强制关闭子进程,主程序返回,计算结果也是正确的,说明子进程完成了指定任务,只是僵尸化了,无法退出
我写了一个用multiprocessing库的程序,创建有循环的职程作为进程,在jobqueue队列中不断获取任务加以处理,达到条件后自动终止,主程序用for p in processing:p.join(),等待子进程全部自我终止,以进行后续处理。然而,该程序
在投入的初始任务较轻时候,顺利退出,返回主进程。然而,到了一个阈值的时候(但工作量怎么看也不至于崩溃),子进程经过debug发现正确地触发了终止条件,然而join()依然阻塞,进入任务管理器发现这些子进程占用cpu 0 %,是纯纯的僵尸进程,这我非常不解,因为已经正确地触发终止,即使我把开启的进程数量调整到1,也会出现这种状况(僵尸化)。我进入任务管理器,强制关闭子进程,主程序返回,计算结果也是正确的,说明子进程完成了指定任务,只是僵尸化了,无法退出
