Callable是实现类吗
时间: 2024-02-11 15:08:20 浏览: 48
Callable不是一个实现类,而是一个接口。它是Java中用于实现带返回值任务的接口,定义了一个call()方法,该方法返回一个泛型类型的结果,并可以抛出受检查异常。
和Runnable一样,我们也可以通过实现Callable接口来创建一个任务,并将其提交给线程池执行,或者将其传递给Thread类的构造函数,创建一个新的线程并启动。
例如:
```
public class MyCallable implements Callable<String> {
public String call() throws Exception {
// 这里是任务执行的代码
return "执行结果";
}
}
// 创建线程池
ExecutorService executor = Executors.newFixedThreadPool(1);
// 提交任务并获取Future对象
Future<String> future = executor.submit(new MyCallable());
// 获取任务执行结果
String result = future.get();
// 关闭线程池
executor.shutdown();
```
在上面的例子中,MyCallable类实现了Callable接口,并重写了call()方法,该方法返回一个String类型的结果。然后我们通过线程池提交了这个任务,并获取了一个Future对象,通过调用Future对象的get()方法,可以获取到任务的执行结果。
需要注意的是,Callable接口的call()方法可以抛出受检查异常,因此在使用时需要进行异常处理。
阅读全文