在多线程编程中,`Callable` 和 `Future` 是两个常用的概念,它们在任务执行和结果获取方面有明显区别。
| 特性 | Callable | Future |
| 定义 | 一个可以返回结果的任务接口 | 表示异步计算的结果 |
| 返回值 | 可以返回一个结果 | 用于获取任务的返回值 |
| 异常处理 | 可以抛出异常 | 通过get()方法获取异常 |
| 使用场景 | 适合需要返回结果的线程任务 | 用于获取后台任务的结果 |
| 是否阻塞 | 不阻塞 | get()方法可能阻塞 |
简单来说,`Callable` 是任务的定义,而 `Future` 是对任务结果的引用。两者常配合使用,实现高效的多线程编程。