参考答案
结论:通过Callable+Future或CountDownLatch等并发工具获取多线程执行结果。核心要点:1. Runnable无返回值,需用Callable接口配合FutureTask或线程池submit返回Future;2. 主线程调用future.get()阻塞获取两个线程的计算成果;3. 也可用CountDownLatch(2)让主线程await,工作线程计算后countDown,主线程读共享变量(需volatile保证可见性);4. 示例:ExecutorService es=Executors.newFixedThreadPool(2); Future<Integer> f1=es.submit(()->1+2); Future<Integer> f2=es.submit(()->3+4); int r1=f1.get(),r2=f2.get(); 原理:Future内部基于等待/通知,任务完成置状态并唤醒;对比join()仅等待结束无法传值,共享变量需额外同步。