java,callable创建一个简单的线程demo
时间: 2025-08-05 17:58:42 浏览: 6
在Java中,`Callable`接口主要用于创建可以计算并返回结果的线程,它属于并发工具类`java.util.concurrent.Callable`的一部分。不同于`Runnable`接口,`Callable`允许我们为线程执行的任务指定一个返回值,通常用于异步计算。下面是一个简单的`Callable`创建线程示例:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
public class CallableDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
// 创建一个任务,实现了Callable接口
Callable<Integer> task = new TaskWithResult();
// 创建ExecutorService实例,这里是ForkJoinPool或者ThreadPoolExecutor等
ExecutorService executor = Executors.newSingleThreadExecutor();
// 提交任务到ExecutorService
Future<Integer> future = executor.submit(task);
// 等待任务完成,并获取结果
int result = future.get(); // 这里会阻塞直到任务结束
System.out.println("Task returned: " + result);
// 关闭ExecutorService
executor.shutdown();
}
private static class TaskWithResult implements Callable<Integer> {
@Override
public Integer call() {
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
e.printStackTrace();
}
return 42; // 返回计算结果
}
}
}
```
在这个例子中,`TaskWithResult`是一个实现了`Callable<Integer>`的内部类,它的`call()`方法会在单独的线程中运行。`Future<Integer>`代表了提交给`ExecutorService`的任务的结果,通过`get()`方法我们可以等待并获取这个结果。
阅读全文
相关推荐


















