FutureTask的方式包装callable实现返回值任务
public static class CallerTask implements Callable<String>(
@Override
public String call() throws Exception {
return "huxingxing'*;
}
}
public static void main(String[] args) throws InterruptedException {
//创建异步任务
FutureTask<String> futureTask = new FutureTasko(new CallerTask());
//启动线程
new Thread(futureTask).start();
try {
String result = futureTask.get();
System.out.printin(result);
} catch (ExecutionException e) {
e.printStackTrace();
}
}
代码中的CallerTask类实现了 Callable接口的call()方法。
在main函数内首先创 建了一个FutrueTask对象(构造函数为CallerTask的实例),然后使用创建的FutrueTask 对象作为任务创建了一个线程并且启动它,最后通过futureTask.get()等待任务执行完毕并 返回结果。