如何在进程的目标函数结束时终止进程



我正在尝试精化一个非常大的JSON数据集。为了做到这一点,我将文件拆分为许多子部分(使用Unixsplit命令(,并将每个部分分配给一个进程,以便可以独立地提取和细化它。每个进程都有其输入文件,该文件对应于主数据集的一个子集。以下是我的代码的样子:

import multiprocessing as mp
def my_target(input_file, output_file):
...
some code 
...
# Is it possible to end the process here ?
#end of the function
worker_count = mp.cpu_count()
processes = [mp.Process(target = my_target, args=(input_file, output_file)) for _ in range(worker_count)]
for p in processes:
p.start()

进程很可能不会同时终止,因此我的问题是:当进程到达target_functionmy_target()的最后一行时,是否可以终止进程?

我想,让流程在完成任务后闲置可以减缓其他流程的发展,不是吗?

有什么建议吗?

我想,您应该检查这个问题,因为它与您可能需要的内容有关:如何使用python终止进程';s的多处理。因为你必须注意";僵尸过程";,因为如果进程结束而未加入,它将变为空闲。

最新更新