重新修改程序,每次线程执行减少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闭锁相关推荐

  1. Java并发编程之CountDownLatch(闭锁)使用详解

    package com.zhangxueliang.day_20191108;import java.util.concurrent.CountDownLatch;/*** 计算多线程的运行时间* @ ...

  2. Java并发编程之CountDownLatch闭锁

    CountDownLatch 典型应用场景:主线程启动多个子线程同时执行业务逻辑,所有子线程都执行完毕,再唤醒主线程继续执行. 例子: public class CountDownLatchTest ...

  3. Java并发工具类(闭锁CountDownLatch)

    并发工具类系列: Java并发工具类(闭锁CountDownLatch) Java并发工具类(栅栏CyclicBarrier) Java并发工具类(信号量Semaphore) 闭锁是一种同步工具类,可 ...

  4. 聊聊高并发(二十六)解析java.util.concurrent各个组件(八) 理解CountDownLatch闭锁

    CountDownLatch闭锁也是基于AQS实现的一种同步器,它表示了"所有线程都等待,直到锁打开才继续执行"的含义.它和Semaphore的语意不同, Semaphore的获取 ...

  5. 同步机制之--java之CountDownLatch闭锁

    CountDownLatch闭锁 1.类介绍 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待.用给定的计数初始化 CountDownLatch.CountDown ...

  6. Java并发编程笔记之 CountDownLatch闭锁的源码分析

    转 自: Java并发编程笔记之 CountDownLatch闭锁的源码分析 ​ JUC 中倒数计数器 CountDownLatch 的使用与原理分析,当需要等待多个线程执行完毕后在做一件事情时候 C ...

  7. 并发编程-16AQS同步组件之CountDownLatch 闭锁

    文章目录 脑图 CountDownLatch闭锁 示例 Thread#join() CountDownLatch CountDownLatch示例二 await一直等待其他线程执行完 CountDow ...

  8. 同步工具之CountDownLatch闭锁

    CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待 ,即CountDownLatch允许一个或多个线程等待其他线程完成操作.闭锁可以延迟 ...

  9. java闭锁_【Java并发编程三】闭锁

    1.什么是闭锁? 闭锁(latch)是一种Synchronizer(Synchronizer:是一个对象,它根据本身的状态调节线程的控制流.常见类型的Synchronizer包括信号量.关卡和闭锁). ...

最新文章

  1. FreeTextBox License机制的粗浅分析
  2. mysql与ftp连接过慢的原因
  3. 虚拟内存越大越好吗_滤波电容越大越好吗?
  4. [Swust OJ 247]--皇帝的新衣(组合数+Lucas定理)
  5. moxy json介绍_MOXy是GlassFish 4中新的默认JSON绑定提供程序
  6. Java基础 选择语句,循环结构数组
  7. 什么是Redis?简述它的优缺点?
  8. kafka集群 kubernetes_为什么Kubernetes如此受欢迎?
  9. Android 透明颜色值ARGB
  10. zend studio php 接口,通过PHP环境ZendStudio轻松实现webservice接口
  11. otdr测试曲线图软件通用,OTDR常见测试曲线
  12. 用MySQL判断一个数为素数_判断一个数是否是素数
  13. Fastdb安装与使用
  14. 干掉卫星、无人机?只用气球就能获取10厘米分辨率遥感影像
  15. 逻辑运算符 异或是什么意思 异或运算
  16. Waited too long for library cache load lock
  17. 在线编辑、在线预览、在线转换,基于wps.js + java + react / vue,无需任何插件,零安装
  18. 与“十“俱进 阿里数据库运维10年演进之路 1
  19. 编译驱动程序报错BufferOverflowFastFailK.lib(loadcfg.obj) : error LNK2001: __guard_eh_cont_count
  20. 【罗塞塔石碑】—My Lover(One.iso)

热门文章

  1. 1090 Highest Price in Supply Chain (25 分)【难度: 一般 / 知识点: 树的遍历】
  2. 【PAT乙级】1070 结绳 (25 分)
  3. 【PAT乙级】1065 单身狗 (25 分)
  4. raise IOError('The file is not exist!')
  5. Linux之tcpdump
  6. Zookeeper的数据模型
  7. SringIOC中Bean的后置处理器
  8. 发那科冲压直线搬运机器人_行业应用 | 直线七轴软件配置
  9. 红米路由器ac2100怎样设置ipv6_红米(Redmi)路由器AC2100手机怎么设置?
  10. 生产者和消费者代码———操作系统_kafka如何保证高并发(从生产者、消费者角度)...