乐趣区

关于java:面试官CountDownLatch-与-CyclicBarrier-的使用场景有什么区别

置信每个想深刻理解多线程开发的 Java 开发者都会遇到 CountDownLatchCyclicBarrier,大家也在网上看到各种介绍原理,代码的,以及他们区别 (应酬面试) 的,然而很少能讲清楚:他们到底有啥作用,怎么用,利用那些场景?为什么面试总会遇到?

本文联合场景为大家加深了解。

官网解释:

翻译:

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 开发手册(嵩山版)》最新公布,速速下载!

感觉不错,别忘了顺手点赞 + 转发哦!

退出移动版