java闭锁_java8中CountDownLatch闭锁
重新修改程序,每次线程执行减少1
package com.gwolf;
import java.util.concurrent.CountDownLatch;
public class TestCountDownLatch {
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDownLatch = new CountDownLatch(5);
LatchDemo latchDemo = new LatchDemo(countDownLatch);
long start = System.currentTimeMillis();
for(int i = 0;i< 10;i++) {
new Thread(latchDemo).start();
}
countDownLatch.await();
long end = System.currentTimeMillis();
System.out.println("耗费时间:" + (end -start));
}
}
class LatchDemo implements Runnable {
//闭锁
private CountDownLatch countDownLatch;
public LatchDemo(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
synchronized (this) {
try {
for (int i = 0; i < 500000; i++) {
if (i % 2 == 0) {
System.out.println(i);
}
}
} finally {
countDownLatch.countDown();
}
}
}
}
java闭锁_java8中CountDownLatch闭锁相关推荐
- Java并发编程之CountDownLatch(闭锁)使用详解
package com.zhangxueliang.day_20191108;import java.util.concurrent.CountDownLatch;/*** 计算多线程的运行时间* @ ...
- Java并发编程之CountDownLatch闭锁
CountDownLatch 典型应用场景:主线程启动多个子线程同时执行业务逻辑,所有子线程都执行完毕,再唤醒主线程继续执行. 例子: public class CountDownLatchTest ...
- Java并发工具类(闭锁CountDownLatch)
并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...
- 聊聊高并发(二十六)解析java.util.concurrent各个组件(八) 理解CountDownLatch闭锁
CountDownLatch闭锁也是基于AQS实现的一种同步器,它表示了"所有线程都等待,直到锁打开才继续执行"的含义.它和Semaphore的语意不同, Semaphore的获取 ...
- 同步机制之--java之CountDownLatch闭锁
CountDownLatch闭锁 1.类介绍 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待.用给定的计数初始化 CountDownLatch.CountDown ...
- Java并发编程笔记之 CountDownLatch闭锁的源码分析
转 自: Java并发编程笔记之 CountDownLatch闭锁的源码分析 JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 C ...
- 并发编程-16AQS同步组件之CountDownLatch 闭锁
文章目录 脑图 CountDownLatch闭锁 示例 Thread#join() CountDownLatch CountDownLatch示例二 await一直等待其他线程执行完 CountDow ...
- 同步工具之CountDownLatch闭锁
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待 ,即CountDownLatch允许一个或多个线程等待其他线程完成操作.闭锁可以延迟 ...
- java闭锁_【Java并发编程三】闭锁
1.什么是闭锁? 闭锁(latch)是一种Synchronizer(Synchronizer:是一个对象,它根据本身的状态调节线程的控制流.常见类型的Synchronizer包括信号量.关卡和闭锁). ...
最新文章
- FreeTextBox License机制的粗浅分析
- mysql与ftp连接过慢的原因
- 虚拟内存越大越好吗_滤波电容越大越好吗?
- [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)
- moxy json介绍_MOXy是GlassFish 4中新的默认JSON绑定提供程序
- Java基础 选择语句,循环结构数组
- 什么是Redis?简述它的优缺点?
- kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
- Android 透明颜色值ARGB
- zend studio php 接口,通过PHP环境ZendStudio轻松实现webservice接口
- otdr测试曲线图软件通用,OTDR常见测试曲线
- 用MySQL判断一个数为素数_判断一个数是否是素数
- Fastdb安装与使用
- 干掉卫星、无人机?只用气球就能获取10厘米分辨率遥感影像
- 逻辑运算符 异或是什么意思 异或运算
- Waited too long for library cache load lock
- 在线编辑、在线预览、在线转换,基于wps.js + java + react / vue,无需任何插件,零安装
- 与“十“俱进 阿里数据库运维10年演进之路 1
- 编译驱动程序报错BufferOverflowFastFailK.lib(loadcfg.obj) : error LNK2001: __guard_eh_cont_count
- 【罗塞塔石碑】—My Lover(One.iso)
热门文章
- 1090 Highest Price in Supply Chain (25 分)【难度: 一般 / 知识点: 树的遍历】
- 【PAT乙级】1070 结绳 (25 分)
- 【PAT乙级】1065 单身狗 (25 分)
- raise IOError('The file is not exist!')
- Linux之tcpdump
- Zookeeper的数据模型
- SringIOC中Bean的后置处理器
- 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
- 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
- 生产者和消费者代码———操作系统_kafka如何保证高并发(从生产者、消费者角度)...