14. 显式锁与内部锁的比较

  • 内部锁不够灵活
    锁的申请和释放只能在一份方法内(方法块无法跨方法)进行
    显示锁支持在一个方法中申请锁,在另一个方法中释放锁

  • 内部锁不会产生锁泄漏
    显示锁会可能会产生锁泄漏,写代码的时候要注意

  • 内部锁是非公平锁
    显示锁可以是公平锁,也可是非公平锁

  • 当线程申请不到内部锁的时候会一直阻塞
    当线程使用显示锁的tryLock()方法去申请锁时,如果申请不到,不会一直阻塞,可以去干其他的事情

  • 对于新版本的java来说,两者的性能差异已经越来越小了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 13,873评论 4 56
  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 6,447评论 0 9
  • Lock显式锁 在Java 5.0之前,在协调对共享对象的访问时可以使用的机制只有synchronized和vol...
    史路比阅读 3,258评论 0 0
  • 别等待 快把捕来的东西串一串 看看它们结成怎么样的形状 美丑都是亲手制作的礼物 别灰心 有时候哪怕是一整天 也捕不...
    满_3539阅读 1,462评论 0 0
  • 我们不能因为畏惧而停下追求希望的脚步,不敢去追求自己想要的生活。如果因为没有勇气去面对而导致了自己的失败,这是不能...
    些许歉意阅读 1,631评论 0 1