文章目录

  • 题目描述
  • 解题思路
  • 代码详解
  • 运行截图

题目描述

题目:jdk5.0 在 java.util.concurrent 包中提供了 CountDownLatch,它是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

闭锁可以延迟线程的进度直到其到达终止状态,闭锁可以用来确保某些活动直到其他活动都完成才继续执行:

1)确保某个计算在其需要的所有资源都被初始化之后才继续执行;

2)确保某个服务在其他依赖的所有其他服务都已经启动之后才启动;

3)等待直到某个操作所有参与者都准备就绪在继续执行。

实现:使用 CountDownLatch 实现一个等5个任务完成后,才进行下边的任务。

解题思路

CountDownLatch 提供了一个 await 方法,该方式用于等待前边 countdownlatch 所统计的线程完成后,才可以向下执行,否则一直等待。

创建一个类:Question86

在 main 方法中 new CountDownLatch(5) 初始化的开启计数个数,为0才会跳出等待。

获取当前的时间戳

Long start 

86. 闭锁 CountDownLatch相关推荐

  1. 闭锁CountDownLatch和栅栏CyclicBarrier之异同举例

    为什么80%的码农都做不了架构师?>>>    CountDownLatch和CyclicBarrier的主要联系和区别如下: 1.闭锁CountDownLatch做减计数,而栅栏C ...

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

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

  3. 深入浅出 Java Concurrency (10): 锁机制 part 5 闭锁 (CountDownLatch)

    闭锁(Latch) 闭锁(Latch):一种同 步方法,可以延迟线程的进度直到线程到达某个终点状态 .通俗的讲就是,一个闭锁相当于一扇大门,在大门打开之前所有线程都被阻断,一旦大门打开所有线程都 将通 ...

  4. Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭

    最近一直整并发这块东西,顺便写点Java并发的例子,给大家做个分享,也强化下自己记忆. 每天起早贪黑的上班,父母每天也要上班,话说今天定了个饭店,一家人一起吃个饭,通知大家下班去饭店集合.假设:3个人 ...

  5. java闭锁_Java闭锁—CountDownLatch

    CountDownLatch,它可以阻塞一个或多个线程,以等待另一组事件的发生后,继续执行被阻塞的一个或多个线程.CountDownLatch的两个核心方法:调用await方法阻塞一个或多个线程:调用 ...

  6. java闭锁_Java并发工具类(闭锁CountDownLatch)

    闭锁是一种同步工具类,可以延迟线程的进度直到其到达终止状态. CountDownLatch是一种灵活的闭锁实现,它可以使一个或者多个线程等待一组事件的发生. 闭锁状态包含一个计数器,该计数器被初始化为 ...

  7. 【Java并发编程实战】 5.5.1章节 闭锁 CountDownLatch 实现

    文章目录 1. 什么是闭锁 2. 闭锁的应用场景 3. 闭锁的实现 4. CountDownLatch原理 5. 使用案例 5.1 入门案例 5.2 复杂案例 1. 什么是闭锁 闭锁(latch)是一 ...

  8. Java 多线程之闭锁-CountDownLatch

    实现并发的最直接方式是在操作系统级别使用进程.进程是运行在自己的地址空间内的自包容程序.多任务操作系统可以通过周期性地将CPU从一个进程切换到另一个进程,来实现同时运行多个进程的.操作系统将进程相互隔 ...

  9. Java 并发编程之同步工具类闭锁 CountDownLatch

    Java 同步工具类CountDownLatch相当于一个计数器,假设一个方法,等待一个计数器从初始值5变为0,每使用一次countdown()方法,计数器的值减少1,当计数器的值为0时,触发某件事. ...

最新文章

  1. 微信小程序----调用用户信息
  2. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
  3. 微信小程序把玩(二十七)audio组件
  4. TF-IDF的java实现(权重排序,可用来处理大数据集)
  5. Mr.J--俄罗斯方块实现(框架)
  6. Redis数据结构、持久化、缓存技术和集群详解
  7. java中解决request中文乱码问题
  8. sql server 2000 更改账户默认数据库
  9. junit注释_JUnit注释
  10. SpringMVC文件上传(二)指定文件
  11. Mysql Workbench使用教程
  12. 【国内首套H3C V7交换机实战课程-1】Comware V7使用、维护与管理-王达-专题视频课程...
  13. 3、思科模拟器介绍 (认识思科模拟器界面、安装思科模拟器、思科模拟器汉化)
  14. oracle 报错904,EXP-00008: 遇到 ORACLE 错误 904
  15. C++语言的特点有哪些
  16. Unity3D|Animation:动画位置与对象位置不一致如何改正
  17. python会计系统_在Python中进行会计的最佳实践
  18. Android报错installation failed with message invalid file E://.....
  19. Aurora落地中国,AWS掀开中国新篇章
  20. 23个带给你灵感的英文字体Logo设计欣赏

热门文章

  1. seo主导下的内容建设
  2. 【数论】ACM数论基础知识总结
  3. C语言中的#if语句使用
  4. linux控制wifi的设备,WIFI控制的遥控车
  5. Mat 的介绍和使用
  6. 问题:npm如何设置仓库地址?
  7. 解决Jenkins插件下载失败或下载慢或报错There were errors checking the update sites: SSLHandshakeException: sun.secu
  8. 链表ADT设计模板的简单应用——链表的ADT的实现C++版
  9. xampp 下载地址
  10. 【教学类-17-02】20221125《世界杯七巧板A4整页-随机参考图七巧板 3份一页》(大班)