avatar
文章
118
标签
12
分类
0
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者
隐私政策
非鱼小站说说 CountDownLatch 原理 返回首页
主页
博文
  • 分类
  • 标签
  • 归档
生活
  • 分享
  • 相册
  • 音乐
  • 影视
友链
留言板
关于笔者
隐私政策

说说 CountDownLatch 原理

发表于2022-05-10|更新于2026-09-16
|浏览量:
文章作者: 烦恼多一点
文章链接: https://heiau.cn/2022/05/10/30.Java 线程 - 说说 CountDownLatch 原理/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 非鱼小站!
线程
赞助
  • 微信
    微信
  • 支付宝
    支付宝
cover of previous post
上一篇
说说 CountDownLatch 与 CyclicBarrier 区别
1.CountDownLatch 的作用是允许 1 或 N 个线程等待其他线程完成执行;而 CyclicBarrier 则是允许 N 个线程相互等待。 2.CountDownLatch 的计数器无法被重置; CyclicBarrier 的计数器可以被重置后使用,因此它被称为是循环的 barrier。
cover of next post
下一篇
sleep、join、yield 有什么区别
sleep()sleep() 方法需要指定等待的时间,它可以让当前正在执行的线程在指定的时间内暂停执行,进入阻塞状态,该方法既可以让其他同优先级或者高优先级的线程得到执行的机会,也可以让低优先级的线程得到执行机会。但是 sleep() 方法不会释放“锁标志”,也就是说如果有 synchronized 同步块,其他线程仍然不能访问共享数据。 wait()wait() 方法需要和 notify() 及 notifyAll() 两个方法一起介绍,这三个方法用于协调多个线程对共享数据的存取,所以必须在 synchronized 语句块内使用,也就是说,调用 wait(),notify() 和 notifyAll() 的任务在调用这些方法前必须拥有对象的锁。注意,它们都是 Object 类的方法,而不是 Thread 类的方法。 wait() 方法与 sleep() 方法的不同之处在于,wait() 方法会释放对象的“锁标志”。当调用某一对象的 wait() 方法后,会使当前线程暂停执行,并将当前线程放入对象等待池中,直到调用了 notify() 方法后,将从对象等待池中移出任意一个线程并...
相关推荐
cover
2022-05-13
说说 Semaphore 原理
Semaphore 直译为信号。实际上 Semaphore 可以看做是一个信号的集合。不同的线程能够从 Semaphore 中获取若干个信号量。当 Semaphore 对象持有的信号量不足时,尝试从 Semaphore 中获取信号的线程将会阻塞。直到其他线程将信号量释放以后,阻塞的线程会被唤醒,重新尝试获取信号量。
cover
2022-05-14
说说 Exchanger 原理
当一个线程到达 exchange 调用点时,如果它的伙伴线程此前已经调用了此方法,那么它的伙伴会被调度唤醒并与之进行对象交换,然后各自返回。如果它的伙伴还没到达交换点,那么当前线程将会被挂起,直至伙伴线程到达——完成交换正常返回;或者当前线程被中断——抛出中断异常;又或者是等候超时——抛出超时异常。
cover
2022-05-16
讲讲线程池的实现原理
当提交一个新任务到线程池时,线程池的处理流程如下: 线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。 线程池判断工作队列是否已经满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。 线程池判断线程池的线程是否都处于工作状态。如果没有,则创建一个新的工作线程来执行任务。
cover
2022-05-15
ThreadLocal 原理分析
ThreadLocal 提供了线程本地变量,它可以保证访问到的变量属于当前线程,每个线程都保存有一个变量副本,每个线程的变量都不同。ThreadLocal 相当于提供了一种线程隔离,将变量与线程相绑定。
cover
2022-05-12
说说 CyclicBarrier 原理
CyclicBarrier 是一个同步辅助类,允许一组线程互相等待,直到到达某个公共屏障点(CommonBarrierPoint)。因为该 barrier 在释放等待线程后可以重用,所以称它为循环的 barrier。
cover
2022-05-18
线程的生命周期
New:新建 Runnable:就绪 Running:运行 Blocked:阻塞 Dead:死亡

评论
WalineDisqus
avatar
烦恼多一点
非鱼小站 - 专注 Java 后端、分布式、缓存、消息队列与数据库等技术分享的个人博客
文章
118
标签
12
分类
0
Follow Me
公告
This is my Blog
最新文章
Hello World
Hello World2026-09-16
如何保证消息的有序性
如何保证消息的有序性2022-07-29
自己如何实现消息队列
自己如何实现消息队列2022-07-28
消息的堆积解决思路
消息的堆积解决思路2022-07-27
消息的幂等性解决思路
消息的幂等性解决思路2022-07-26
© 2020 - 2026 By 烦恼多一点