package thread;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/**
* @description: CallerTask类实现了Callable接口的call()方法。在main函数内首先创建了一个
* FutrueTask对象(构造函数为CallerTask的实例),然后使用创建的FutrueTask对象
* 作为任务创建了一个线程并且启动它,最后通过futureTask.get()等待任务执行完毕并返回结果。
* @author: Raymond
* @createDate: 2020/5/6
* @version:
*/
public class FutureTaskTest {
public static class CallerTask implements Callable {
@Override
public String call() throws Exception {
return "Hello Raymond !";
}
}
public static void main(String[] args) {
// 创建异步任务
FutureTask futureTask = new FutureTask<>(new CallerTask());
new Thread(futureTask).start();
try {
String result = futureTask.get();
System.out.println(result);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}