男生上锁了是什么意思 锁是什么意思

文章目录

          • 问题来源
          • 什么叫锁
          • 为什么会有锁
            • 私有制和公有制
            • 资源的稀缺和充足
            • 保证隐私
            • 僧多肉少
            • 为什么会有锁
          • 都有什么样的锁
            • 讲不讲素质要不要排队—公平锁和非公平锁
            • 虽然很多人排队 , 但里边未必没有坑位—乐观锁和悲观锁
            • 进了大门 , 能不能直接进入具体坑位—可重入锁和不可重入锁
            • 一个坑位只能蹲一个人 , 那坑位外边的洗手区呢—共享锁和排他锁
            • 要不要一直排队等 , 还是先去旁边抽根烟—自旋锁和适应性自旋锁
          • 有没有开不了的锁
          • 那些被忽略的锁
            • final关键字
            • volatile关键字
            • public、private、protected
          • 神图:公厕示意图
问题来源
  • 还是有一次面试呀 , 人家就问我:说说锁的实现原理吧 。我当时的反应就是:小朋友 , 你是不是有很多的问号?第一反应 , 可以用某某某的一首某某歌的词来形容:最想说的话 , 我该从何说起 , 你是不是也像我一样在想呢?
  • 说说为什么我会有点懵逼的感觉吧 。第一:在我理解 , 什么叫原理 , 就是原始的理论或者最初的道理 。一个原理可以约等于一种理念 , 是不管谁拿着这个原理 , 都可以撸出一种实现的 。道理只有一个 , 但实现方式千千万万 。第二:虽说面试的时候 , 前提讨论背景是Java语言环境 , 但即使是Java里边的锁 , 也分很多的吧 。常见通俗的 , 就说Synchronized关键字实现的是不是一种锁?ReentrantLock实现的是不是一种锁?ReadWriteLock实现的又是不是一种锁?第三:就上边说的这三种 , 在我看来也是不同类型范围的锁的不同实现方式 , 万万达不到原理层面 。PS:我后来知道了 , 他是想让我说Synchronized是怎么实现的 。
  • 昨天还跟一个朋友说起这个事儿 , 他是觉得我有点较真了 , 面试的时候 , 就是要说出对方想听的 , 然后大家都认可的答案 。说来也奇怪 , 我问他:来来来 , 我们说说Java里边锁的实现原理吧?哇塞 , 他就立马开始说Synchronized的什么monitorenter和monitorexit指令 , 什么flag的ACC_SYNCHRONIZED标志了 。我也很懵了 , 或许是我真的太固执吧 。只是内心深处 , 私以为:概念、原理性的东西 , 一定要是清晰明确的 , 不能混为一谈 。后来说着说着我也不想多说 , 就再问了朋友一个问题:好 , 你说了那么多非常的好 , 再问你一个问题:为什么会有锁? 至此 , 我把天聊死了 。其实 , 我还有好多问题呢:有无所谓的万能锁?锁的作用是啥?怎么实现自己的锁?在A场景到底需不需要锁 , 为什么需要锁 , 需要什么样的锁? 多说无益 , 我终究是又把天聊死了 。
什么叫锁