我想对多个核心上的文件进行批处理。我有以下情况:
- 我有 20 个文件。
- 我有一个函数,它接受一个文件名,处理它并产生一个整数结果。我想将该函数应用于所有 20 个文件,计算每个文件的整数输出,最后将各个输出相加并打印总结果。
- 由于我有 4 个内核,我一次只能处理 4 个文件。因此,我想一次运行 5 轮处理 4 个文件(4 * 5 = 20)。
- 也就是说,我想创建 4 个进程,每个进程一个接一个地处理 5 个文件(第一个进程处理文件 0、4、8、12、16,第二个进程处理文件 1、5、9、13、17 等)。
我如何实现这一目标?我对multiprocessing.Pool()
,multiprocessing.Process()
和其他各种选项感到困惑。
谢谢。