文章目录
- 问题来源
- 什么叫锁
- 为什么会有锁
- 私有制和公有制
- 资源的稀缺和充足
- 保证隐私
- 僧多肉少
- 为什么会有锁
- 都有什么样的锁
- 讲不讲素质要不要排队—公平锁和非公平锁
- 虽然很多人排队 , 但里边未必没有坑位—乐观锁和悲观锁
- 进了大门 , 能不能直接进入具体坑位—可重入锁和不可重入锁
- 一个坑位只能蹲一个人 , 那坑位外边的洗手区呢—共享锁和排他锁
- 要不要一直排队等 , 还是先去旁边抽根烟—自旋锁和适应性自旋锁
- 有没有开不了的锁
- 那些被忽略的锁
- final关键字
- volatile关键字
- public、private、protected
- 神图:公厕示意图
- 还是有一次面试呀 , 人家就问我:说说锁的实现原理吧 。我当时的反应就是:小朋友 , 你是不是有很多的问号?第一反应 , 可以用某某某的一首某某歌的词来形容:最想说的话 , 我该从何说起 , 你是不是也像我一样在想呢?
- 说说为什么我会有点懵逼的感觉吧 。第一:在我理解 , 什么叫原理 , 就是原始的理论或者最初的道理 。一个原理可以约等于一种理念 , 是不管谁拿着这个原理 , 都可以撸出一种实现的 。道理只有一个 , 但实现方式千千万万 。第二:虽说面试的时候 , 前提讨论背景是Java语言环境 , 但即使是Java里边的锁 , 也分很多的吧 。常见通俗的 , 就说Synchronized关键字实现的是不是一种锁?ReentrantLock实现的是不是一种锁?ReadWriteLock实现的又是不是一种锁?第三:就上边说的这三种 , 在我看来也是不同类型范围的锁的不同实现方式 , 万万达不到原理层面 。PS:我后来知道了 , 他是想让我说Synchronized是怎么实现的 。
- 昨天还跟一个朋友说起这个事儿 , 他是觉得我有点较真了 , 面试的时候 , 就是要说出对方想听的 , 然后大家都认可的答案 。说来也奇怪 , 我问他:来来来 , 我们说说Java里边锁的实现原理吧?哇塞 , 他就立马开始说Synchronized的什么monitorenter和monitorexit指令 , 什么flag的ACC_SYNCHRONIZED标志了 。我也很懵了 , 或许是我真的太固执吧 。只是内心深处 , 私以为:概念、原理性的东西 , 一定要是清晰明确的 , 不能混为一谈 。后来说着说着我也不想多说 , 就再问了朋友一个问题:好 , 你说了那么多非常的好 , 再问你一个问题:为什么会有锁? 至此 , 我把天聊死了 。其实 , 我还有好多问题呢:有无所谓的万能锁?锁的作用是啥?怎么实现自己的锁?在A场景到底需不需要锁 , 为什么需要锁 , 需要什么样的锁? 多说无益 , 我终究是又把天聊死了 。
- 《辞源》曰:“锁 , 古谓之键 , 今谓之锁 。”《辞海》解释为:“必须用钥匙方能开脱的封缄器” 。再纵观历史 , 锁的产生 , 伴随着私有制的产生 。不知道有么有童鞋记得中学的一篇文章《礼记-大同》中的“故外户而不闭“ , 不闭 , 咱们可以理解为不加锁的意思 。
- 想一下 , 为什么家里的们要上锁?或者说是自己的笔记本要加开机密码—我认为设置密码 , 本质上就是加锁? 什么情况没有锁 , 换种说法是:什么情况不必有锁?
推荐阅读
- 分别进行是什么意思 分别是什么意思
- 女人说不是什么意思 不是什么意思
- 什么是发思特软件FastCAM加密狗? 加密狗是什么
- goke是什么意思 joke是什么意思
- 会忘记我吗的反义词 忘记的反义词是什么
- 学word有什么用 word是什么
- 追忆似水年华名句赏析 似水年华是什么意思
- 了字结构和部首是什么 的字的部首是什么
- 电脑重装后没声音了怎么办,电脑重装系统后没有声音怎么办