线程:CountDownLatch同步工具
2024-08-24 23:51:18
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
类似计数器,当计数器的值为0时,继续往下执行。
package ch03; import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class CountDownLatchTest { public static void main(String[] args) {
ExecutorService threadPool = Executors.newCachedThreadPool();
//初始值设置为2
final CountDownLatch latch = new CountDownLatch(2);
for(int i=0; i<2; i++){
Runnable runnable = new Runnable() { @Override
public void run() {
try {
Thread.sleep(new Random().nextInt(6000));
System.out.println("子线程执行。。。");
//计数器自减
latch.countDown();
} catch (Exception e) {
e.printStackTrace();
}
}
};
threadPool.execute(runnable);
} try {
//等待计数器自减到0,然后再往下执行。
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("主线程....");
} }
最新文章
- 一个Java文件至多包含一个公共类
- QuartusII Design partion and logic lock
- Daily Scrum Meeting ——SixthDay
- setTimeout和setInterval的各自使用场景
- 一个Public的字段引起的,谈谈继承中的new
- js java正则表达式替换手机号4-7位为星*号
- 从零开始学ios开发(十五):Navigation Controllers and Table Views(中)
- C++ 读取XML文件(tinyXML库的应用)
- Unity_与android交互
- [经典] 最X(长 | 大和 | 大积)Y(子序列 | 子字符串)
- Tomcat和Java Virtual Machine的性能调优总结
- 006-接收键盘的输入(read)
- 四大机器学习编程语言对比:R、Python、MATLAB、Octave
- springDatasolr 排序
- python中的异常处理常用方法
- windows下使用LibreOffice的体验
- BP神经网络的理论理论常识
- 为什么Sql Server的查询有时候第一次执行很慢,第二次,第三次执行就变快了
- 在Linux中将脚本做成系统服务
- 揭秘uc浏览器一