Python的multiprocessing.Pool.map中的“chunksize”参数

时间:2010-09-29 14:22:46

标签: python multiprocessing

如果我有一个带有2个处理器的池对象,例如:

p=multiprocessing.Pool(2)

我想迭代目录上的文件列表并使用map函数

有人可以解释这个函数的块大小是什么:

p.map(func, iterable[, chunksize])

如果我将chunksize设置为10,那意味着每10个文件应该用一个处理器处理吗?

1 个答案:

答案 0 :(得分:35)

查看documentation for Pool.map看起来你几乎是正确的:chunksize参数会导致迭代被分割成大约那个大小的碎片,每个碎片是作为一项单独的任务提交的。

因此,在您的示例中,是的,map将占用前10个(大约),将其作为单个处理器的任务提交...然后将下一个10作为另一个任务提交,依此类推。请注意,这并不意味着这将使处理器每10个文件交替一次,处理器#1很可能最终得到1-10和11-20,处理器#2得到21-30和31-40。 / p>