1、如果有一个很耗时的返回值要去计算,并且这个返回值不需要马上需要,可以用另一个线程去计算返回值。
public class MyCallable1 implements Callable<Integer> { @Override public Integer call() throws Exception { return new Random().nextInt(100); } } public class MyCallable1Test { @Test public void contextLoads() throws ParseException, ExecutionException, InterruptedException { MyCallable1 myCallable1 = new MyCallable1(); FutureTask<Integer> ft = new FutureTask<>(myCallable1); new Thread(ft).start(); // 可能做一些其他操作 System.out.println("子线程的返回值:" + ft.get()); } }