再深一点,理解线程的join方法
配图:曲径通幽 讲真,如果不是被面试官吊打,join()方法也还不会引起我的重视。因为,工作中确实没有使用过它。 现在,对它来个刨根问底。 join()方法的作用 在写这篇文章之前,我对join的理解只停留在字面意思“把指定线程加入到当前线程”。 再来看官方怎么解释的: //Waits for this thread to die. public final void join() throws InterruptedException { join(0); } “Waits for this thread to die.”,也就是等着join()方法所属的 线程死亡(run方法执行完毕正常结束或线程异常死亡)。 下面举个例子,证实这个说法。 举个栗子 import static java.lang.System.out; public class JoinTest { public static void main(String args[]) throws InterruptedException{ String threadName = Thread.currentThread().getName(); out.println(threadName + " is Started"); Thread th1 = new FooThread(); th1.start(); th1