我有一个可迭代的列表,我想在给定的块大小上对所有可迭代对象执行一个函数。根据文档https://docs.python.org/3/library/concurrent.futures.html,我知道我可以做类似的事情>
with concurrent.futures.ThreadPoolExecutor(max_workers=numberOfThreads) as executor: futures = { executor.map(fn, iterables, chunksize=someChunkSize) }
[
fn
定义为:
def fn(obj): #do something and return something
但是如果
fn
具有多个参数怎么办:
def fn(param1, param2, obj): #do something and return something
由于附加参数,现在是否无法通过
executor.map
使用此功能?
或者,对于根据文档submit
定义的submit(fn, *args, **kwargs)
函数,可以这样清晰地传递参数:
executor.submit(fn, param1, param2, obj): obj for obj in iterableOfObj
但是它似乎不支持
chunksize
。
其中一个怎么可以:
fn
中的executor.map
?executor.submit
的块大小?我有一个可迭代的列表,我想在给定的块大小上对所有可迭代对象执行一个函数。根据docs https://docs.python.org/3/library/concurrent.futures.html,我知道我可以做一些事情...
从您链接的文档中: