在多线程开发中常常遇到了一个问题就是希望某一个线程在执行完毕后在执行主线程。在Java中通常用join()方法来实现需求。join()方法的目的是所属的线程正常运行run()方法中的逻辑,当前线程无限期阻塞,也就是说一直等待所属线程执行完,当前线程才会执行,底层实现原理是调用了wait()方法。
我们看主任务先执行了,然后才执行的是子任务。这时我们调用join()方法,就可以实现先执行子任务在执行主任务的需求了。
我们看实现了我们想要的逻辑。但在使用join()方法是还要有几点注意的地方:
- 必须在线程启动之后调用,在启动这前调用是没有效果的。
- join()方法在执行完后会立即释放锁。