CountDownLatch使用小例
CountDownLatch使用小例
Small-Liu 发表于2年前
CountDownLatch使用小例
  • 发表于 2年前
  • 阅读 41
  • 收藏 0
  • 点赞 1
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

摘要: CountDownLatch使用小例

需要:主线程里启动子线程,需要等子线程里的某个操作完成后主线程才能继续往下走。

final CountDownLatch countDownLatch = new CountDownLatch(2);
for(int i=0;i<2;i++) {
	// 服务端启动
	new Thread(new Runnable() {
		public void run() {
			try {
				Thread.sleep(100);
				System.out.println("test1");
				Thread.sleep(100);
				countDownLatch.countDown();
				Thread.sleep(100);
				System.out.println("test2");
			} catch (Exception e) {
				e.printStackTrace();
				System.exit(-2);
			}
		}
	}).start();
}
System.out.println("test-main1");
try {
	countDownLatch.await();
} catch (InterruptedException e) {
	e.printStackTrace();
}
System.out.println("test-main2");

结果:

test-main1
test1
test1
test-main2
test2
test2

 CountDownLatch是原子操作,await()阻塞直到初始值变为0

只有当两个线程都走完test1时主线程才会继续往下走。

标签: CountDownLatch
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 15
博文 56
码字总数 49976
×
Small-Liu
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: