面试官:CountDownLatch 与 CyclicBarrier 的使用场景?有什么区别?
CountDownLatch
和CyclicBarrier
,大家也在网上看到各种介绍原理,代码的,以及他们区别(应付面试)的,但是很少能讲清楚:他们到底有啥作用,怎么用,应用那些场景?为什么面试总会遇到?官方解释:
CountDownLatch是一个同步的辅助类,允许一个或多个线程,等待其他一组线程完成操作,再继续执行。
CyclicBarrier是一个同步的辅助类,允许一组线程相互之间等待,达到一个共同点,再继续执行。
他们都是:Synchronization aid,我把它翻译成同步辅助器,既然是辅助工具,怎么使用啊?哪些场景使用啊?
补充场景: 我们在玩LOL英雄联盟时会出现十个人不同加载状态,但是最后一个人由于各种原因始终加载不了100%,于是游戏系统自动等待所有玩家的状态都准备好,才展现游戏画面。
每位乘客(线程)上车后,可用座位减1,直到为0,老司机就开始发车了。另外,多线程系列面试题和答案全部整理好了,微信搜索互联网架构师,在后台发送:2T,可以在线阅读。
个人理解:CyclicBarrier:可看成是个障碍,所有的线程必须到齐后才能一起通过这个障碍
抽象图:
我这里只是为了促进大家更好的理解它们的应用场景,详细用法可以自行搜索。另外,关注公众号互联网架构师,在后台回复:2T,可以获取我整理的 Java 多线程系列面试题和答案,非常齐全。
原文链接:https://blog.csdn.net/zzg1229059735/article/details/61191679
感谢您的阅读,也欢迎您发表关于这篇文章的任何建议,关注我,技术不迷茫!小编到你上高速。
正文结束
1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
5.37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...
评论