如何获取子线程的执行结果
前言 博主以前面试的时候,真真切切的被问过这样一道题: 如何获取子线程的执行结果? 总所周知,在 单线程 情况下,想获取线程执行结果很简单,只需要写类似的代码即可: Object result = xxx.getXxx(); 但是在 多线程 的情况下,想要获取子线程的执行结果,恐怕就没这么简单了。 剑走偏锋 我们都知道开启一个新线程的方式有两种:继承 Thread 类、实现 Runnable 接口。可是这两种方式都没有返回值,相信这也难不倒聪明的同学,可以把代码写成这样: public class ThreadResultDemo { private volatile static int result = 0; public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(()->{ System.out.println("Hello Sicimike."); // 要返回的结果 result = 1; }); thread.start(); thread.join(); System.out.println("子线程返回的结果:" + result); } } 执行结果: Hello Sicimike. 子线程返回的结果:1 可以看到 主线程