synchronized与lock对比
•lock锁是显式锁(手动开启和关闭),synchronized是隐式锁,出了作用域自动释放。
•lock只有代码块锁,synchronized有代码块锁和方法锁。
•使用lock锁,jvm将花费更少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)
•优先使用顺序:
lock>同步代码块(已经进入方法体,分配了相应资源)>同步方法(在方法体之外)
•lock锁是显式锁(手动开启和关闭),synchronized是隐式锁,出了作用域自动释放。
•lock只有代码块锁,synchronized有代码块锁和方法锁。
•使用lock锁,jvm将花费更少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类)
•优先使用顺序:
lock>同步代码块(已经进入方法体,分配了相应资源)>同步方法(在方法体之外)