返回
Callable 接口的 Java 源码解析与常见问题解答
闲谈
2023-11-23 11:13:39
Callable 接口是 Java 并发编程中一个重要的接口,它允许您在多线程环境中执行任务并返回结果。Callable 接口与 Runnable 接口非常相似,但 Callable 接口的方法返回一个结果,而 Runnable 接口的方法不返回任何结果。
Callable 接口的定义如下:
public interface Callable<V> {
V call() throws Exception;
}
Callable 接口只有一个方法:call()。call() 方法返回一个 V 类型的结果,并且可以抛出 Exception。
要使用 Callable 接口,您需要创建一个 Callable 实例并将其传递给 ExecutorService.submit() 方法。ExecutorService.submit() 方法将返回一个 Future 对象,您可以使用 Future 对象来获取 Callable 实例的执行结果。
以下是一个使用 Callable 接口的示例:
import java.util.concurrent.*;
public class CallableExample {
public static void main(String[] args) {
ExecutorService executorService = Executors.newFixedThreadPool(10);
Callable<Integer> callable = () -> {
// 执行任务并返回结果
return 10;
};
Future<Integer> future = executorService.submit(callable);
try {
// 获取 Callable 实例的执行结果
Integer result = future.get();
System.out.println("The result is: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
} finally {
executorService.shutdown();
}
}
}
在上面的示例中,我们创建了一个 Callable 实例并将其传递给 ExecutorService.submit() 方法。ExecutorService.submit() 方法返回了一个 Future 对象,我们使用 Future 对象来获取 Callable 实例的执行结果。
Callable 接口是一个非常强大的工具,它可以用于实现各种各样的多线程任务。例如,您可以使用 Callable 接口来并行执行任务、计算结果并返回结果。