首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CountDownLatch:倒计数器

CountDownLatch是一个非常实用的多线程控制工具类。“Count Down”在英文中意思为倒计数,Latch意思为门闩的意思。如果翻译成为倒计数门闩,我想大家都会不知所云吧!因此,这里简单地称之为倒计数器。在这里,门闩的含义是把门锁起来,不让里面的线程跑出来,因此,这个工具通常用来控制线程等待,它可以让某一个线程等待直到倒计数结束,再开始执行。

对于倒计数器,一种典型的场景就是火箭发射。在火箭发射前,为了保证万无一失,往往还要对各项设备、仪器进行检查。只有等所有检查都完成后,引擎才能点火,这种场景就非常适合使用CountDownLatch。它可以使点火线线程等待所有检查线程全部完工后再执行。

CountDownLatch的构造函数接收一个整数作为参数,即当前这个计数器的计数个数。

下面这个简单的示例,演示了CountDownLatch的使用方法。

上述代码第2行生成一个CountDownLatch实例,计数数量为10,这表示需要10个线程完成任务后等待在CountDownLatch上的线程才能继续执行。代码第10行使用了,也就是通知CountDownLatch,一个线程已经完成了任务,倒计数器减1。第21行使用方法,要求主线程等待所有检查任务全部完成,待10个任务全部完成后,主线程才能继续执行。

主线程CountDownLatch上等待,当所有检查任务全部完成后,主线程方能继续执行。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201013A0H8EJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券