专栏首页Linyb极客之路2 张图,让你一秒理解 CountDownLatch、CyclicBarrier

2 张图,让你一秒理解 CountDownLatch、CyclicBarrier

CountDownLatch(倒数闩)

经常用于监听某些初始化操作,等初始化线程全部执行完毕后,才通知主线程继续工作。

  • 即一个线程处于阻塞的状态下,他要收到多少次通知,才能被苏醒,并继续往下执行。
  • 注意,只能阻塞 一个线程。
  • countDown.countDown() 到了 0,并使得 countDown.await() 苏醒之后,仍旧能进行 countDown.countDown(),并且不会报错,但是 countDown.getCount() 始终为 0。

CyclicBarrier(同步屏障)

场景假设:每个线程代表一个跑步运动员,当所有运动员都准备好,才能一起出发,只要有一个人没有准备好,那么大家都要等待他。

  • 注意:阻塞的是每个线程。

本文分享自微信公众号 - Linyb极客之路(gh_c420b2cf6b47),作者:yongnny

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JAVA多线程和并发基础面试问答

    一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同...

    lyb-geek
  • 干货:Java并发编程必懂知识点解析(内附面试题)

    原子,即一个不可再被分割的颗粒。在Java中原子性指的是一个或多个操作要么全部执行成功要么全部执行失败。

    lyb-geek
  • 阿里P8架构师总结Java并发面试题(精选)

    线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比...

    lyb-geek
  • linux下进程和线程到底是什么?

    7537367
  • Java并发之线程

         在前面我们介绍的一些内容中,我们的程序都是一条执行流,一步一步的执行。但其实这种程序对我们计算机的资源的使用上是低效的。例如:我们有一个用于计算的程序...

    Single
  • 高并发Java(2):多线程基础

    使用线程的原因是,进程的切换是非常重量级的操作,非常消耗资源。如果使用多进程,那么并发数相对来说不会很高。而线程是更细小的调度单元,更加轻量级,所以线程会较为广...

    用户5640963
  • 常见多线程与并发服务器设计方案举例

    一、3点基础知识 1、一个主机的端口号为所有进程所共享,但普通用户进程绑定bind不了一些特殊端口号如20、80等。      多个进程不能同时监听listen...

    s1mba
  • Tomcat 参数配置相关

    对Tomcat配置的点滴学习总结,主要目的在于分析Tomcat与性能相关的一些参数设置,以便性能调优时选择最优配置

    授客
  • Java 四种线程池的使用

    介绍new Thread的弊端及Java四种线程池的使用 1,线程池的作用 线程池作用就是限制系统中执行线程的数量。 根据系统的环境情况,可以自动或手动设置线程...

    搜云库
  • 【面试宝典】Java之线程一如何开启线程

    面试官:大四是吧? 小白:是的,学校大四没有课,只有毕业设计,就想着提前出来锻炼锻炼。 面试官:想法很好,那咱们开始吧,知道线程吧! 小白:嗯,线程是CPU执行...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券