控制线程顺序执行

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

         前段时间面试被问了一个问题:

         “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(), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值