文档章节

CountDownLatch的使用

ShortHand
 ShortHand
发布于 2016/09/27 23:50
字数 230
阅读 28
收藏 0

1.CountDownLatch介绍:

类CountDownLatch所提供的功能是判断count计数不为0时则当前线程呈wait状态,如果为0则继续运行。实现等待与继续运行的效果分别需要使用await()和countDown()方法来实现的。调用await()方法时判断计数是否为0,如果不为0则呈等待状态。其他线程可以调用countDown()方法将计数-1,当计数为0时,呈现等待的线程继续运行。

2.CountDownLatch的简单用法:

Run.java

package com.test.countdownlatch;

public class Run {
	public static void main(String[] args) throws InterruptedException {
		Service service = new Service();
		MyThread t = new MyThread(service);
		t.start();
		Thread.sleep(2000);
		service.downMethod();
	}
}

MyThread.java

package com.test.countdownlatch;

public class MyThread extends Thread {
	private Service myService;
	public MyThread(Service myService) {
		super();
		this.myService = myService;
	}
	@Override
	public void run() {
		myService.testMethod();
	}

}

Service.java

package com.test.countdownlatch;
import java.util.concurrent.CountDownLatch;
public class Service {
	private CountDownLatch down = new CountDownLatch(1);
	public void testMethod() {
		try {
			System.out.println("countdown之前:"+down.getCount());
			down.await();
			System.out.println("countdown:之后"+down.getCount());
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
	public void downMethod() {
		System.out.println("countdown进行");
		down.countDown();
	}
}

结果如下:

输入图片说明

© 著作权归作者所有

共有 人打赏支持
下一篇: Semaphore的使用
ShortHand
粉丝 3
博文 78
码字总数 16508
作品 0
静安
高级程序员
私信 提问

暂无文章

错误: 找不到或无法加载主类

在IDEA的使用过程中,经常断掉服务或者重启服务,最近断掉服务重启时突然遇到了一个启动报错: 错误:找不到或无法加载主类 猜测:1,未能成功编译; 尝试:菜单---》Build---》Rebuild Pro...

安小乐
17分钟前
1
0
vue路由传参,刷新页面,引发的bug

最近遇到一个bug 通过vue路由跳转到页面, 然后接参控制(v-if ),成功显示 而刷新页面,显示失败。 苦苦地找了半天原因,打印参数发现正确,再打印下类型......,路由跳过来会保持传参时的...

hanbb
17分钟前
0
0
【58沈剑 架构师之路】InnoDB,select为啥会阻塞insert?

MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,Inn...

张锦飞
21分钟前
0
0
冒泡,选择和插入排序比较

/** * 冒泡排序,两层嵌套循环,内层局部比较后,找出最大或者最小数据并交换数据,使其局部有序,外层用于比较剩余元素,相较于选择排序,选择排序相当于是冒泡的一个优化版本(减少了交换...

strict_nerd
21分钟前
0
0
html内联(行内)元素、块级(块状)元素和行内块元素分类

HTML可以将元素分类方式分为内联(行内)元素、块级(块状)元素和行内块元素三种。 注:HTML是标签语言,那么既然是标签,就可以自己定义一些自己元素(如<wode>自定义的元素</wode>等),自...

NB-One
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部