更好的组合:Java 和 Thread 类。第四部分——可召唤者、未来与朋友们

发布时间:2026/7/28 6:09:41
更好的组合:Java 和 Thread 类。第四部分——可召唤者、未来与朋友们 简介在第一部分中,我们回顾了线程是如何创建的。让我们再回忆一次。线程由线程类表示,调用线程类的方法。那么我们用 Tutorialspoint 在线 Java 编译器执行以下代码:这是线程中启动任务的唯一选项吗?run()public class HelloWorld { public static void main(String[] args) { Runnable task = () - { System.out.println("Hello World"); }; new Thread(task).start(); } }java.util.concurrent.Callable事实证明,java.lang.Runnable 有一个兄弟,叫 java.util.concurrent.Callable,他是在 Java 1.5 版本中诞生的。它们有什么区别?如果你仔细查看该接口的 Javadoc,我们会发现与 不同,新接口声明了一个返回结果的方法。而且默认会抛出异常。也就是说,它省去了我们为已检查异常而封锁的任务。不错吧? 现在我们有了新的任务,而不是:但我们该怎么办?为什么我们需要一个任务运行在返回结果的线程上?显然,对于未来发生的任何行动,我们都期望在未来获得相应的结果。我们有一个对应名称的接口:Runnablecall()try-catchRunnableCallable task = () - { return "Hello, World!"; };java.util.concurrent.Futurejava.util.concurrent.Futurejava.util.concurrent.Future 接口定义了一个 API,用于处理未来计划接收结果的任务:获取结果的方法和检查状态的方法。 关于 ,我们对其在 java.util.concurrent.FutureTask 类中的实现感兴趣。这就是将在 中执行的“任务”。更有趣的是,这个实现还实现了Runnable。你可