开启线程池 加入任务 传入参数 此任务能够在执行完成时得到返回值
public static void main(String[] args) {
class Task implements Callable<String> {
public int id;
public Task(int id) {
this.id = id;
}
@Override
public String call() throws Exception {
return "result " + (this.id * this.id);
}
}
try {
Future<String> future = Executors.newCachedThreadPool().submit(new Task(123));
while (true) {
if (future.isDone()) {
System.out.println(future.get());
break;
}
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}