返回

Callable 接口的 Java 源码解析与常见问题解答

闲谈

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 接口来并行执行任务、计算结果并返回结果。