如何通过函数params执行并发.futures.ThreadPoolExecutor.map()?

问题描述 投票:0回答:1

我有一个可迭代的列表,我想在给定的块大小上对所有可迭代对象执行一个函数。根据文档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

其中一个怎么可以:

  1. 将附加参数传递给fn中的executor.map
  2. 设置executor.submit的块大小?

我有一个可迭代的列表,我想在给定的块大小上对所有可迭代对象执行一个函数。根据docs https://docs.python.org/3/library/concurrent.futures.html,我知道我可以做一些事情...

python concurrency concurrent.futures
1个回答
0
投票

从您链接的文档中:

© www.soinside.com 2019 - 2024. All rights reserved.