有时候多线程编程的时候需要线程之间的通信, 主线程等待子线程全部执行完毕之后再做其他操作。

那么在主线程中就可以执行下面代码:

thread1.join();

thread2.jon();

// TODO 做其他事情。

join 的基本流程如下:

调用线程的isAlive判断线程是否存活,如果线程存活则调用wait方法阻塞当前线程。

如果线程已经销毁,那么就会继续执行主线程的代码。

关于主线程等待子线程处理时候的阻塞是如何被唤醒的,基本上是通过JVM 虚拟机底层实现的,当子线程销毁的时候,会自动去找到依赖当前线程阻塞的所有线程并唤醒

发表评论

电子邮件地址不会被公开。 必填项已用*标注