暖场热身
面试官:你先自我介绍一下。
安琪拉:面试官你好,我是草丛三婊,最强中单(妲己不服),草地摩托车车手,第21套广播体操推广者,火的传人安琪拉,这是我的简历,可能有点沉,您拿好了,也就三十多页。
面试官:看你简历上写的熟悉并发编程,熟悉到什么程度?
安琪拉:精通。对。。。问就是“精通”,头铁。

嘿嘿
面试官:用过 synchronized 的吧?
安琪拉:用过,巴拉巴拉讲一大堆来之前背好的八股。
面试官:不错不错,ReentrantLock 用过吧?
安琪拉:用过,巴拉巴拉讲一大堆(这里不清楚地去背第8集)。
正式对决
面试官:那你一般synchronized 用得多还是 ReentrantLock用的多?
安琪拉:用得都多
面试官:他们2 个有区别吗?什么时候用 synchronized, 什么时候用 ReentrantLock?
安琪拉:有区别,synchronized 属于非公平锁,不支持锁共享,功能比较单一。
ReentrantLock 功能比较丰富,比如需要用到公平锁、尝试加锁,带超时时间的获取锁,获取锁支持响应中断我就会用ReentrantLock。
面试官:【心想,小伙子基本功可以的】,那你能分别讲讲刚才你说的这几种的详细用法吗? 最好是说说具体用的方法。
安琪拉:【问得还有点深。。。】你想先听哪个?
面试官:【有点东西】 那你讲讲ReentrantLock 支持的可以尝试加锁是意思?
安琪拉: 如果把加锁比作俘获女孩子的芳心。
synchronized 就是个痴心专一男,一旦发起加锁流程,就一心等待,即使这时女孩有男朋友(其他线程抢占),他还是会一直等待。
ReentrantLock 不一样,他有个技能,叫做做 tryLock,尝试获取女孩子的心,发现一旦有其他竞争对象,他立马折返撤退。
而且这个tryLock 还有个特殊技能,获取锁支持带超时时间,如果女孩在指定时间内没给机会,就会返回。
说的好听,ReentrantLock 很灵活应变,不好听,ReentrantLock 有点渣。
面试官:【陷入沉思中,原来synchronized 竟是
976




被折叠的 条评论
为什么被折叠?



