我是pathos 开发人员。这不是疏忽……在使用pathos.pools.ProcessingPool 时不能使用chunksize。这样做的原因是我想让map 函数与python 的map... 具有相同的接口,并且要做到这一点,基于multiprocessing 实现,我要么必须选择使@ 987654327@ 一个关键字,或者允许*args 和**kwds。所以我选择后者。
如果要使用chunksize,有_ProcessPool,它保留了原来的multiprocessing.Pool接口,但增加了序列化。
>>> import pathos
>>> p = pathos.pools._ProcessPool()
>>> p.map(lambda x:x*x, range(4), chunksize=10)
[0, 1, 4, 9]
>>>
很抱歉,您觉得缺少文档。该代码主要由来自 python 标准库的multiprocessing 的一个分支组成......并且我没有更改已复制该功能的文档。比如这里我回收的是 STL 文档,因为功能是一样的:
>>> p = pathos.pools._ProcessPool()
>>> print(p.map.__doc__)
Equivalent of `map()` builtin
>>> p = multiprocessing.Pool()
>>> print(p.map.__doc__)
Equivalent of `map()` builtin
>>>
...在我修改了功能的情况下,我确实编写了新文档:
>>> p = pathos.pools.ProcessPool()
>>> print(p.map.__doc__)
run a batch of jobs with a blocking and ordered map
Returns a list of results of applying the function f to the items of
the argument sequence(s). If more than one sequence is given, the
function is called with an argument list consisting of the corresponding
item of each sequence.
>>>
诚然,文档可能会更好。特别是来自 STL 的文档可以改进。请随时在 GitHub 上添加票证,或者更好的是 PR 以扩展文档。