python with ThreadPoolExecutor
时间: 2024-06-01 09:07:11 浏览: 129
Python线程池模块ThreadPoolExecutor用法分析
ThreadPoolExecutor是Python标准库concurrent.futures中的一个线程池实现。通过ThreadPoolExecutor,可以很方便地创建线程池并使用它们来并发执行任务。
使用ThreadPoolExecutor的主要步骤如下:
1. 创建ThreadPoolExecutor对象,并指定线程池的大小。
2. 提交任务给线程池执行,可以使用submit()方法,它会返回一个Future对象,可以用来获取任务执行的结果或者取消任务。
3. 当所有任务都提交后,调用shutdown()方法关闭线程池。
下面是一个简单的例子,展示了如何使用ThreadPoolExecutor来并发执行多个任务:
```
import concurrent.futures
import time
def worker(n):
print(f"Thread {n} starting")
time.sleep(2)
print(f"Thread {n} finishing")
return n * 10
if __name__ == "__main__":
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
futures = []
for i in range(5):
future = executor.submit(worker, i)
futures.append(future)
for future in concurrent.futures.as_completed(futures):
result = future.result()
print(f"Got result: {result}")
```
在这个例子中,我们创建了一个大小为3的线程池,并提交了5个任务给它执行。我们使用submit()方法来提交任务,并将返回的Future对象存储在一个列表中。然后,我们使用as_completed()函数来等待所有任务完成,并获取它们的结果。
阅读全文