FutureTask
多线程执行任务时,有比较耗时操作,但又需要其返回结果时,可以使用FutureTask
public class FutureTaskDemo {
public static void main(String[] args) throws Exception {
FutureTask<String> futureTask = new FutureTask<String>(() -> {
log.info("do something in callable");
Thread.sleep(5000);
return "Done";
});
new Thread(futureTask).start();
log.info("do something in main");
Thread.sleep(1000);
// 获取耗时操作的返回结果,这里是堵塞操作
String result = futureTask.get();
log.info("result:{}", result);
}
}