python线程池回调函数_第11天续,Python并发编程之线程池/进程池
时间: 2023-07-01 14:22:06 浏览: 143
好的,关于线程池回调函数,可以在提交任务时指定回调函数,当任务完成时,线程池会自动调用回调函数,以通知任务已经完成。
在Python中,可以使用concurrent.futures模块中的ThreadPoolExecutor来创建线程池,通过submit()方法向线程池提交任务,可以指定回调函数。下面是示例代码:
```python
import concurrent.futures
def callback_func(future):
# 回调函数
print("Task done.")
def worker_func(num):
# 模拟一个耗时的任务
return num * num
if __name__ == '__main__':
# 创建线程池
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
# 提交任务
future = executor.submit(worker_func, 5)
# 指定回调函数
future.add_done_callback(callback_func)
```
这个例子中,我们创建了一个包含2个线程的线程池,并提交了一个任务worker_func(5)。在任务完成后,回调函数callback_func会被自动调用。
需要注意的是,回调函数的参数是一个Future对象,可以通过Future对象的result()方法获取任务的返回值。如果任务发生异常,可以通过Future对象的exception()方法获取异常信息。
阅读全文