置信每个想深刻理解多线程开发的Java开发者都会遇到CountDownLatch
和CyclicBarrier
,大家也在网上看到各种介绍原理,代码的,以及他们区别(应酬面试)的,然而很少能讲清楚:他们到底有啥作用,怎么用,利用那些场景?为什么面试总会遇到?
本文联合场景为大家加深了解。
官网解释:
翻译:
CountDownLatch是一个同步的辅助类,容许一个或多个线程,期待其余一组线程实现操作,再继续执行。
CyclicBarrier是一个同步的辅助类,容许一组线程相互之间期待,达到一个共同点,再继续执行。
他们都是:Synchronization aid,我把它翻译成同步辅助器,既然是辅助工具,怎么应用啊?哪些场景应用啊?
集体了解:CountDownLatch:我把他了解成倒计时锁
场景还原: 一年级期末考试要开始了,监考老师发下去试卷,而后坐在讲台旁边玩着手机期待着学生答题,有的学生提前交了试卷,并约起打球了,等到最初一个学生交卷了,老师开始整顿试卷,贴封条,上班,陪老婆孩子去了。
补充场景: 咱们在玩LOL英雄联盟时会呈现十个人不同加载状态,然而最初一个人因为各种起因始终加载不了100%,于是游戏零碎主动期待所有玩家的状态都筹备好,才展示游戏画面。
形象图:
每位乘客(线程)上车后,可用座位减1,直到为0,老司机就开始发车了。
集体了解:CyclicBarrier:可看成是个阻碍,所有的线程必须到齐后能力一起通过这个阻碍
场景还原: 以前公司组织户外拓展流动,帮忙团队建设,其中最重要一个我的项目就是整体员工(包含女同事,BOSS)在实现其余我的项目时,达到一个高达四米的高墙没有任何抓点,要求所有人,一个不能少的越过高墙,能力持续进行其余我的项目。
形象图:
解放军完满配合,一个都不能少,持续实现工作。
我这里只是为了促成大家更好的了解它们的利用场景,具体用法能够自行搜寻。
原文链接:https://blog.csdn.net/zzg1229...
版权申明:本文为CSDN博主「pony-zi」的原创文章,遵循CC 4.0 BY-SA版权协定,转载请附上原文出处链接及本申明。
近期热文举荐:
1.1,000+ 道 Java面试题及答案整顿(2021最新版)
2.别在再满屏的 if/ else 了,试试策略模式,真香!!
3.卧槽!Java 中的 xx ≠ null 是什么新语法?
4.Spring Boot 2.5 重磅公布,光明模式太炸了!
5.《Java开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞+转发哦!