前段时间面试被问了一个问题:
“ABC三个线程,如何让AB并发执行完了再顺序执行C?”
“额,不好意思,不清楚唉,我自己回家等通知吧 = =”
再一次感慨过去写过的代码,业务场景不复杂,都没有很多对线程的操作,印象中使用过的就是Thread.sleep(),更不用说多线程了……唉,需要学习的东西还有很多啊,好好学习,天天向上~
以下两种实现方式文字部分摘抄整理自:日积月累:Java等待子线程执行完毕,再执行后续逻辑
1. Join
Thread提供了 join() 让一个线程等待另一个线程完成的方法。当在某个程序执行流程中调用其它线程的join()方法时,调用线程将被阻塞,知道被join()方法加入的join线程执行完毕为止,在继续运行。
join()方法的实现原理是不停检查join线程是否存活,如果join线程存活则让当前线程永远等待。直到join线程完成后,线程的this.notifyAll()方法会被调用。
代码如下:
public class Test1 {
public static void main (String[] args) {
Thread t1 = new Thread(new TestThread(),

这篇博客介绍了在Java中如何控制线程顺序执行,特别是如何在AB两个线程并发执行后,确保线程C顺序执行。文章通过Join和CountDownLatch两种方法进行阐述,详细解释了它们的工作原理和使用示例。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



