Callable
和 Future
是 Java 并发编程中用于处理多线程任务的两个关键接口,它们通常与线程池一起使用,以实现异步任务执行和获取结果的功能。
- Callable
-
Callable
是一个泛型接口,它定义了一个带有返回值的任务。与 Runnable
不同,Callable
的 call()
方法可以返回一个值,并且可以抛出受检查的异常。
- 通常,需要实现
Callable
接口,然后通过 ExecutorService
的 submit(Callable<T> task)
方法来提交任务。
-
Callable
适用于需要获取任务执行结果的情况,以及处理可能抛出异常的任务。
示例代码:
import java.util.concurrent.Callable;
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
// 执行任务并返回结果
return 18;
}
}
- Future
-
Future
是一个接口,用于表示一个异步计算的结果。它允许你在将来的某个时候获取任务的结果,或者等待任务完成。
- 当你通过
ExecutorSer