ThreadPoolExecutor pool.map 多个参数
时间: 2024-05-22 18:09:00 浏览: 158
ThreadPoolExecutor是Python标准库中提供的一个线程池实现,可以用来方便地管理和调度多个线程任务。而pool.map是ThreadPoolExecutor的一个方法,用于并发地执行多个函数,并返回结果。
pool.map可以接收多个参数,其基本形式为:
```
pool.map(function, iterable[, chunksize])
```
其中,function表示要并发执行的函数;iterable表示要迭代执行function的可迭代对象;chunksize表示可选的块大小,即每次处理的任务数量。
需要注意的是,function函数必须只有一个参数,并且iterable中的每个元素都必须是function的参数。在并发执行过程中,ThreadPoolExecutor会自动将iterable中的元素分配给空闲线程进行执行,并且会返回一个迭代器,可用于获取每个函数执行的结果。
下面是一个例子:
```python
from concurrent.futures import ThreadPoolExecutor
def square(n):
return n ** 2
if __name__ == '__main__':
with ThreadPoolExecutor(max_workers=4) as pool:
results = pool.map(square, [1, 2, 3, 4, 5])
for result in results:
print(result)
```
以上代码中,我们定义了一个square函数,用于计算一个数的平方。在主程序中,我们创建了一个ThreadPoolExecutor对象,并指定最大线程数为4。然后使用pool.map方法并发地执行square函数,并传入一个包含5个数字的列表作为参数。最后,使用for循环输出每个函数执行的结果。
阅读全文