Lock 和 Synchronized

2019-08-23  本文已影响0人  梦想旅行家Jirry
Lock锁:

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

Lock 和 synchronized 的区别

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

优先使用顺序

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

上一篇 下一篇

猜你喜欢

热点阅读