在多线程编程中,join()方法的作用是等待线程结束。之所以使用join这个单词,是因为它表示将当前线程与指定的线程“连接”在一起,当前线程要等待指定线程结束之后才会继续执行。更具体而言,join()做了以下几件事:

  1. 当前线程停止执行,等待指定线程结束。
  2. 当前线程会监听指定线程的状态,一旦指定线程结束,当前线程会继续执行。
  3. 如果指定线程因为某些原因导致死锁,那么当前线程也会受影响而死锁。

所以使用join()方法的目的是让当前线程等待指定线程完成它的工作,两者达到一个同步的效果。当前线程会“加入”指定线程,和它一同执行,当它结束时再继续执行。

所以所谓的等待线程结束,其实就是加入指定线程,这样理解是不是好理解一点。