五.Callable接口
Callable接口类似于Runnable,不同的是Callable可以返回执行结果并且可以抛出异常,其实现方法为call()。
可以使用FutureTask包装Callable对象,然后创建Thread将futuretask作为参数传递并调用start()执行。
public class Call {
public static void main(String[] args) throws ExecutionException, InterruptedException {
CallT callT = new CallT();
FutureTask futureTask = new FutureTask(callT);
new Thread(futureTask).start();
// 结果会被缓存
String str = (String) futureTask.get();
// 获取返回值,可能会产生阻塞
System.out.println(str);
}
}
class CallT implements Callable {
@Override
public String call() throws Exception {
System.out.println("test");
return "return";
}
}