美文网首页
Lock 和 Synchronized

Lock 和 Synchronized

作者: 梦想旅行家Jirry | 来源:发表于2019-08-23 17:32 被阅读0次
Lock锁:
  • JDK1.5后新增的功能,与采用 synchronized 相比,lcok 可以提供多种锁的方案,更加灵活。

注意:如果同步代码块有异常,要将 unlock() 写入 finally 语句块中。

  • ReentrantLock 类实现了 Lock ,它拥有与 synchronized 相同的 并发性内存语义,但是添加了类似 锁投票定时锁等候可中断锁等候 的一些特性。

    此外,它还提供了在激烈争用情况下更佳的性能。

Lock 和 synchronized 的区别

  1. Lock 是显式锁(手动开启 和 关闭锁 ,别忘记关闭锁),synchronized 是隐式锁。
  2. Lock 只有代码块锁,synchronized 有代码块锁 和 方法锁。
  3. 使用 Lock 锁,JVM 将花费较少的时间来调度线程,性能更好,且具有更好的扩展性(提供更多的子类)。

优先使用顺序

Lock <== == 同步代码块 (已经进入了方法体,分配了相应资源) <== == 同步方法 (在方法体之外)

相关文章

网友评论

      本文标题:Lock 和 Synchronized

      本文链接:https://www.haomeiwen.com/subject/obwtectx.html