ser*_*gio 39 python multiprocessing
如果我有一个带有2个处理器的池对象,例如:
p=multiprocessing.Pool(2)
Run Code Online (Sandbox Code Playgroud)
我想迭代目录上的文件列表并使用map函数
有人可以解释这个函数的chunksize是什么:
p.map(func, iterable[, chunksize])
Run Code Online (Sandbox Code Playgroud)
如果我将chunksize设置为10,那意味着每10个文件应该用一个处理器处理吗?
det*_*tly 36
看看Pool.map的文档,看起来你几乎是正确的:chunksize
参数将导致iterable被分割成大约相同大小的片段,并且每个片段作为单独的任务提交.
因此,在您的示例中,是的,map
将采用前10个(大约),将其作为单个处理器的任务提交...然后将下一个10作为另一个任务提交,依此类推.请注意,这并不意味着这将使处理器每10个文件交替一次,处理器#1很可能最终得到1-10和11-20,而处理器#2得到21-30和31-40.