concurrent.futures怎么使用
时间: 2024-06-13 18:04:13 浏览: 85
Python concurrent.futures模块使用实例
`concurrent.futures`是Python标准库中的一个模块,它提供了一种高层次的接口来异步执行可调用对象。它支持线程池和进程池,可以方便地实现并发编程。
下面是一个简单的例子,展示了如何使用`concurrent.futures`模块来实现线程池:
```python
import concurrent.futures
import time
def worker(num):
print(f"Worker {num} started")
time.sleep(1)
print(f"Worker {num} finished")
return num * 2
if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
results = [executor.submit(worker, i) for i in range(5)]
for future in concurrent.futures.as_completed(results):
print(f"Result: {future.result()}")
```
在这个例子中,我们定义了一个`worker`函数,它会休眠1秒钟,然后返回传入的参数的两倍。我们使用`ThreadPoolExecutor`创建了一个最大线程数为3的线程池,并使用`submit`方法提交了5个任务。`submit`方法会立即返回一个`Future`对象,表示任务的执行结果。我们将这些`Future`对象保存在一个列表中,并使用`as_completed`方法来迭代这些`Future`对象,获取它们的执行结果。
需要注意的是,`concurrent.futures`模块只能在Python 3.2及以上版本中使用。
阅读全文