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"; } }