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

how to terminate a process at the end of its target function?

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

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_function [=12 的最后一行时是否可以终止进程=] ?

我想让进程在完成任务后闲置会减慢其他进程的发展,不是吗?

有什么建议吗?

我猜你应该检查这个问题,因为它与你可能需要的东西相关: how to to terminate process using python's multiprocessing。 因为你必须关心“僵尸进程”,因为如果进程结束而不加入 - 它就会变得空闲。