java,callable创建线程demo
时间: 2025-05-02 10:49:00 浏览: 17
在Java中,`Callable` 和 `FutureTask` 是用于处理异步计算的高级工具,它们主要用于创建可以在单独线程上运行的任务,并提供获取任务结果的能力。这里是一个简单的示例,演示如何使用 `Callable` 创建一个线程:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 定义一个Callable任务,它返回一个整数
Callable<Integer> worker = new Callable<Integer>() {
@Override
public Integer call() {
try {
return Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
return 42; // 返回计算结果
}
};
// 使用FutureTask包装Callable任务
FutureTask<Integer> futureTask = new FutureTask<>(worker);
// 将任务提交到新线程
Thread thread = new Thread(futureTask);
thread.start();
// 主线程等待任务完成并获取结果
System.out.println("Task result: " + futureTask.get()); // 这里会阻塞直到获取到结果
}
}
```
在这个例子中,我们创建了一个 `Callable` 实现,然后将其封装成 `FutureTask`,再把这个 `FutureTask` 提交给一个新的线程执行。当主线程通过 `get()` 方法调用 `FutureTask` 时,会等到子线程的结果返回。
阅读全文
相关推荐




















