多线程通过Callable实现返回值

1、如果有一个很耗时的返回值要去计算,并且这个返回值不需要马上需要,可以用另一个线程去计算返回值。

public class MyCallable1 implements Callable {

    @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 ft = new FutureTask<>(myCallable1);
        new Thread(ft).start();
        // 可能做一些其他操作
        System.out.println("子线程的返回值:" + ft.get());

    }

}

你可能感兴趣的:(java,蓝桥杯,职场和发展)