1.lock是一个接口,而synchronized是java关键字,synchronized是内置的语言实现。

2.synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁,而lock在发生异常时,如果没有主动unlock释放锁,则很可能造成死锁。因此使用lock时需要在finally块中释放锁。

3.lock可以让等待锁的线程响应中断,而synchronized不行,使用synchronized时,等待的线程会一直等待下去,不能响应中断。

4.lock可以提高多个线程进行读操作的效率。

5.通过lock可以知道有没有成功获取锁,synchronized不可以。

总结:从性能上来说,如果竞争资源不激烈,两者的性能差不多,而竞争资源非常激烈时,此时lock的性能要远远优于synchronized,所以,在具体使用时候,要根据适当情况进行选择。

最新文章

  1. icomoon图标的使用
  2. 【Python实战】Pandas:让你像写SQL一样做数据分析(一)
  3. android 透明度
  4. 数对的个数(cogs610)
  5. 关于H5中自定义属性的设置和获取
  6. CP2102模块介绍(USB转uart)
  7. spring事物传播机制 事物隔离级别
  8. 每日必读(2) --Base64
  9. BZOJ 2878: [Noi2012]迷失游乐园( 树形dp )
  10. 计蒜客模拟赛D1T1 蒜头君打地鼠:矩阵旋转+二维前缀和
  11. 为什么使用正则test( )第一次是 true,第二次是false?
  12. RocketMQ知识整理与总结
  13. css溢出显示省略号
  14. 用 DocumentFormat.OpenXml 和Microsoft.Office.Interop.Word 写入或者读取word文件
  15. c#命名规范(转载)
  16. each遍历
  17. DDD简明入门之道 - 开篇
  18. U8 应付款管理 单据类型 分析
  19. net license tool, EasyLicense !
  20. [转帖]中国公有云2018H1市场占有率

热门文章

  1. Java--分布式系统高并发解决方案
  2. java学习笔记(6)——序列化
  3. Java 中override、overload、overwrite区别,以及与多态的关系【转】
  4. 2 WCF里面配置的含义
  5. WPF 图形绘制 及各种线帽、箭头的实现
  6. Socket_Internet 命名空间
  7. 数据绑定(二)把控件作为Binding源
  8. PHP获得指定日期所在星期的第一天和最后一天
  9. Win10版《芒果TV》全平台直播第89届奥斯卡颁奖典礼,特设第二演播室带来一手资讯
  10. Android动画基础——属性动画(Property Animation)