哈喽,大家好鸭!
我是你们活泼、热爱技术、31岁依然活跃在一线开发岗位的小米!
今天咱们来聊个我最近社招面试被问懵的Java多线程面试题!是的,我!被问!懵!了!
故事从一场“社招二面”说起…
事情是这样的,前段时间我在一家大厂的Java社招面试现场,二面官看起来特别和蔼,开场就聊兴趣爱好、项目经验,气氛不要太好。
我心想:“稳了稳了,这波感觉我要拿Offer了!”
结果,突然他话锋一转:
“小米啊,那你说说看,CyclicBarrier 和 CountDownLatch 有啥区别?”
我当时脑子一懵:“啊?不都用来多线程同步的吗?好像谁用完了就释放谁吧……”
这就是传说中的,面试现场翻车事故现场警告。
回来后我疯狂补课,真香!
为了不给下一个自己挖坑,我决定,搞!清!楚!
我泡了一晚上的Java并发库,啃源码、写demo,终于明白了它俩的真正区别。今天就来跟大家讲清楚,包你看完不迷糊!
CountDownLatch 和 CyclicBarrier 各是什么?
咱先别上来就区别、应用场景,先搞清楚这俩是什么东西!别怕,我给你捋顺~
1、CountDownLatch —— 倒计时门闩
顾名思义,CountDownLatch 就