在Java并发编程中,Runnable、Callable、Future、RunnableFuture 和 FutureTask 这些接口和类都是为了支持异步任务执行和结果获取而设计的。下面分别说明它们的设计原理并提供使用范例。
- Runnable Interface
Runnable 是 Java 中最基本的线程任务接口,它只包含一个 run() 方法,用于定义线程需要执行的任务。
public interface Runnable {
void run();
}
// 使用示例
class MyRunnable implements Runnable {
@Override
public void run() {
System.out.println("Running a task in a thread...");
}
public static void main(String[] args) {
Thread t = new Thread(new MyRunnable());
t.start();
}
}
- Callable Interface
Callable 接口扩展了 Runnable 的功能,它提供了有返回值的任务,并且可以抛出异常。通过实现 call() 方法,我们可以创建一个能返回结果的任务。
import java.util.concurrent.Callable;
import java.util