等待线程执行终止的 join 方法
本篇内容为线程专题 -- 线程的创建,状态,工作过程中的部分内容。
在项目实践中经常会遇到一个场景,就是需要等待某几件事情完成后才能继续往下执行,比如多个线程加载资源,需要等待多个线程全部加载完毕再汇总处理。Thread类中有一个join方法就可以做这个事情, join方法则是Thread类直接提供的,且join()是无参且返回值为void的方法。好比在B线程中调用A.join(),这时候B线程会让出执行权给A线程,直到A线程执行完或者过了超时时间之后再继续执行B线程。
源码分析
从源码中可以看出 join() 方法底层还是通过 wait() 方法来实现的。
有三个线程T1,T2,T3,怎么确保它们按顺序执行?
在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。
实例讲解
待补充
希望本文章对您有帮助,您的转发、点赞是我的创作动力,十分感谢。更多好文推荐,请关注我的微信公众号--JustJavaIt