路漫漫其修远兮,吾将上下而求“锁”​

日前面试一精神小伙,观其神态从容、举止自信。料其必学富五车,才高八斗。问其乐观锁、悲观锁、可重入锁、乃至读写锁,无不妙语连珠、出口成章。心生疑惑,欲以考题难之。一则辨其真伪,明足以察秋毫之末。二则观大佬code style,以作日后东施效颦,照猫画虎之用。

初,望其挥笔撒墨,题诗"Double check单例"一首。兄台直言未曾听闻"Double chek",并好言相劝此等歪门邪道、野史杂记不提也罢。吾大惊失色,诚惶诚恐,遂作罢。

然,余浸淫安卓十数载,亦非等闲之辈,岂容在大侠面前失了身份。再托其赐教"synchronized使用",如图threaA和threadB是否存在阻塞:

公气定神闲,眼角余光扫过题目。答曰:

尔等既然使用synchronized描述方法,则其必在线程之间互斥。结果很明显,ThreadA执行时,ThreadB被阻塞。

惊为天人!继续问之,吾欲将"lock"改为static,结果如何?奈何兄台以不耻下问之姿态,好言相劝“此等实践之贱痞,试过便知”。

何等豪气!感慨既生瑜、何生亮。本欲结束这场"煮酒论英雄",奈何受人之托,忠人之事,只能继续自取其辱。如图,加一threadC并执行

结果如下:

问之1、2、3刻锁之状态。本欲求道偏向锁、轻量级锁、重量级锁之一二,君却顾左右而言其他,实属答非所问。此题已是强弩之末,如曹孟德口中之鸡肋--食之无味,只能作罢。

路漫漫其修远兮,吾将上下而求“锁”。任你虐我千百遍,我仍待你如初级工程师。最终抱有一丝幻想,尝试以一线程排序题结束。

果不出所料,公之答案中间以Thread.sleep()隔之,附图:

终,觉难与其谋事,好言挽留一番,送君出大门。临终握其手曰:“出门右转”。

如果你喜欢本文

长按二维码关注

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页