文档章节

CountDownLatch使用小例

Small-Liu
 Small-Liu
发布于 2016/03/01 09:35
字数 147
阅读 42
收藏 0

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

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时主线程才会继续往下走。

© 著作权归作者所有

共有 人打赏支持
Small-Liu
粉丝 16
博文 56
码字总数 49976
作品 0
南京
程序员
Java并发编程之CountDownLatch

CountDownLatch(闭锁)是一个很有用的工具类,利用它我们可以拦截一个或多个线程使其在某个条件成熟后再执行。 说到这,给大家举一个最典型的例子:假设一条流水线上有三个工作者:worker0,w...

code_xzh
05/24
0
0
Java并发学习(十七)-并发工具CountDownLatch

另一个并发工具,CountDownLatch,和CyclicBarrier功能上有点类似,但是在实现上和是不同的。 What is CountDownLatch 简单的说,也是一个计数器,和CyclicBarrier相比,一定方面是更加灵活的...

anLA_
2017/12/10
0
0
【java.util.concurrent】CountDownLatch解析

一、概念 被用来同步一个或多个线程任务,强制他们等待直到由其他线程完成正在执行的一组操作。 可以向CountDownLatch对象设置一个计数值,可以通过在该对象上调用countDown()方法来减小该计...

阿阿阿阿阿局
2016/08/09
14
0
java中等待所有线程都执行结束

使用CountDownLatch,这其实是最优雅的写法了,每个线程完成后都去将计数器减一,最后完成时再来唤醒 @Test public void testThreadSync3() { final Vector list = new Vector(); Thread[] t...

17099933344
2017/11/09
0
0
SpringBoot使用JPA操作数据库

第七章 使用JPA操作数据库 本章主要介绍如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置). 数据访问层我们将使用Spring Data JPA和Hiber...

东海陈光剑
2016/07/02
129
1

没有更多内容

加载失败,请刷新页面

加载更多

Python介绍

Python介绍 一、简介 Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载等,有益于增强源代码的复用性。Python相对于Lisp这种传统的函数式编程语言,P...

星汉
2分钟前
0
0
VS_设置护眼背景色

工具---->选项---->环境---->字体和颜色:

一个小妞
5分钟前
0
0
Flask跨域请求的处理方法

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法: 使用 flask-cors库可以很容易的解决 pip install flask-cors 两种方法,一个是全局/批量的,一个是单一独立的: 安全...

ykbj
6分钟前
0
0
Pandas学习记录-Series

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。 pandas.Series Pandas系列可以使用以下构造函数创建 - pandas.Series( dat...

kipeng300
14分钟前
0
0
可以实现内网穿透的几款工具

最近没什么事情,看了一些关于内网穿透的文章,因我本身已是做微信开发相关的工作,对这部分关注的比较多,现分享给大家。 首先说下内网穿透的原理。 NAPT原理 在NAT网关上会有一张映射表,表...

哥本哈根的小哥
15分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部