Thread的join方法是用来等待一个线程执行完毕的方法。当一个线程调用另一个线程的join方法时,它会等待该线程执行完毕后再继续执行。
具体原理如下:
当一个线程调用另一个线程的join方法时,当前线程会进入到等待状态,直到被调用的线程执行完毕。
被调用的线程执行完毕后,会调用notifyAll方法唤醒等待的线程。
被调用的线程执行完毕后,会释放掉自己的锁,从而使得等待的线程可以获得锁继续执行。
需要注意的是,join方法只能等待一个线程执行完毕,如果需要等待多个线程执行完毕,可以使用CountDownLatch或者CyclicBarrier等多线程协调工具。