CyclicBarrier可以重复使用,而CountdownLatch不能重复使用。

countDownLatch这个类使一个线程等待其他线程各自执行完毕再执行。

是通过一个计数器来实现的,计数器的初始值是线程的数量。通过countDown()来减一,等减到0,await()方法就进入等待run状态。

例子:
public static CountDownLatch countDownLatch = new CountDownLatch(3);public static void doCountDownLatch(){Thread t1 = new Thread(() -> {try {System.out.println("进入T1 await中!");countDownLatch.await();System.out.println("T1 Complete!");} catch (InterruptedException e) {e.printStackTrace();}});Thread t2 = new Thread(() -> {for (int i = 0; i < 3; i++) {System.out.println("进入T2!");try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}countDownLatch.countDown();System.out.println("T2 Complete --: " + (3 - i));}});t1.start();t2.start();}

CycliBarriar和CountdownLatch(计数器)相关推荐

  1. java count 在哪一类里_java 5线程中 Semaphore信号灯,CyclicBarrier类,CountDownLatch计数器以及Exchanger类使用...

    先来讲解一下Semaphore信号灯的作用: 可以维护当前访问自身的线程个数,并提供了同步机制, 使用semaphore可以控制同时访问资源的线程个数 例如,实现一个文件允许的并发访问数. 请看下面的 ...

  2. java 并发统计_java并发编程|CountDownLatch计数器

    0x01,CountDownLatch介绍 CountDownLatch是一个计数器,作为java并发编程中三个组件之一,这个组件的使用频率还是很多的.这里分享下自己画的java并发编程组件的图,后面 ...

  3. JAVA多线程-CountDownLatch计数器

    一.概述 CountDownLatch是一个同步工具类,它允许一个或多个线程等待其他线程执行完操作之后再继续执行.通常用于控制多个线程的执行顺序. 二.基本原理 我们可以把CountDownLatch ...

  4. 【Java 并发编程】CountDownLatch 简介

    文章目录 I CountDownLatch 概念 II CountDownLatch 使用流程 III CountDownLatch API 简介 I CountDownLatch 概念 1. 概念 ...

  5. 并发工具类:CountDownLatch、CyclicBarrier、Semaphore

    在多线程的场景下,有些并发流程需要人为来控制,在JDK的并发包里提供了几个并发工具类:CountDownLatch.CyclicBarrier.Semaphore. 一.CountDownLatch ...

  6. JUC 中的多线程协作工具类:CountDownLatch 和 CyclicBarrier

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:干掉 Navicat:这个 IDEA 的兄弟真香!个人原创100W+访问量博客:点击前往,查看更多 最近在学习 ...

  7. JUC多线程:CountDownLatch、CyclicBarrier、Semaphore同步器原理总结

    一.CountDownLatch: 1.什么是 CountDownLatch: CountDownLatch,闭锁,就是一个基于 AQS 共享模式的同步计数器,它内部的方法都是围绕 AQS 实现的.主 ...

  8. java 信号量 countdown_Java计数器之CountDownLatch、CyclicBarrier、Semaphore

    在Java里面有几种可以用于控制线程状态的方法,如CountDownLatch计数器.CyclicBarrier循环栅栏.Sempahore信号量.下面就分别演示下他们的使用方法: CountDown ...

  9. java多线程之CountDownLatch倒数闸门

    在多个线程进行协作时,一个常见的情景是一个线程需要等待另外的线程完成某些任务之后才能继续进行.在这种情况下,可以使用CountDownLatch类,CountDownLatch类相当于多个线程等待开启 ...

最新文章

  1. iOS 系统分析(一) 阅读内核准备知识
  2. Netmeeting的四个端口
  3. 汇编语言 利用栈 将数据逆序存放
  4. 【从入门到放弃-Java】并发编程-线程安全
  5. 中文字符存储 mysql_中文字符的存储
  6. 【Computer Organization笔记18】大实验讨论:控制器设计、指令流程表
  7. Revit二次开发示例:AutoUpdate
  8. Rancher2.5入门——安装Rancher
  9. LINUX SHELL脚本如何判断一个目录下有没有文件
  10. Tkinter教程(每天半小时,3天彻底掌握Tkinter)day1
  11. [生存志] 第6节 第一篇 以史为鉴 明朝事的读后心得
  12. 腾讯实习生面试-笔试
  13. ROS机器人学习历程三:Publisher 和Subscriber
  14. 005-2-Python文件操作
  15. 免费模式破冰PC业瓶颈
  16. 浅谈马尔可夫决策过程(一)
  17. Novell云计算大会在京开幕
  18. 如何优雅的区分测试版本和正式版本的环境
  19. 金工研报:你的风险模型能预测你的风险吗?
  20. 自律力:创建持久的行为习惯,成为你想成为的人

热门文章

  1. 生命的礼赞,请记住我的名字,我叫科比-布莱恩特
  2. 渥太华大学药学院院长Daniel Figeys团队诚邀药物-微生物组方向博士后
  3. QIIME 2教程. 20实用程序Utilities(2021.2)
  4. 简单使用DESeq2/EdgeR做差异分析
  5. WebMGA:超快的基因组序列聚类注释在线工具
  6. PNAS: 儿童生长发育迟缓 = 长期饥饿?
  7. Nature Method:Bioconda解决生物软件安装的烦恼
  8. R语言使用ggplot2包使用geom_boxplot函数绘制基础分组缺口箱图(notch boxplot)实战
  9. 机器学习数据预处理之缺失值:预测填充(回归模型填充、分类模型填充)
  10. 概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA)