CountDownLatch使用,相比使用join 方法来实现线程间同步,前者更具有灵活性和方便性。另 外还介绍了CountDownLatch 的原理, CountDownLatch是使用 AQS 实现的。使用 AQS 的状态变量来存放计数器的值。首先在初始化CountDownLatch时设置状态值(计数器值),当多个线程调用countdown方法时实际是原子性递减 AQS 的状态值。当线程调用await方法后当前线程会被放入 AQS 的阻塞队列等待计数器为0再返 。其他线程调用 countdown 法让计数器值递减1,当计数器值变为0时,前线程还要调用 AQS的doReleaseShared方法来激活由于调用await()方法而被阻的线程。
学习CountDownLatch
最新推荐文章于 2021-10-10 12:45:12 发布