add_done_callback
时间: 2024-06-08 17:04:27 浏览: 10
`add_done_callback` 是 Python `concurrent.futures` 模块中的 Future 对象的一个方法,它允许你在异步计算完成后执行一个回调函数。Future 对象代表了一个异步操作的结果,而 `add_done_callback` 方法则允许你在该操作完成时(无论成功还是失败)注册一个回调函数。
以下是一个简单的例子,展示了如何使用 `add_done_callback`:
```python
from concurrent.futures import ThreadPoolExecutor, Future
def callback(future: Future):
try:
result = future.result() # 等待结果并处理可能的异常
print(f"Result: {result}")
except Exception as e:
print(f"Callback caught an exception: {e}")
# 创建一个线程池
with ThreadPoolExecutor() as executor:
# 提交一个任务
future = executor.submit(some_time_consuming_function)
# 注册回调
future.add_done_callback(callback)
```
在这个例子中,`some_time_consuming_function` 是一个耗时的操作,当其执行完成后,`callback` 函数会被调用,接收未来对象 `future` 作为参数。如果任务成功完成,`result()` 会返回任务的结果;如果任务抛出了异常,`result()` 会捕获这个异常。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)