1、Lock是显示锁(手动开启和关闭,别忘记关闭),synchronize是隐式锁,出了所用域自动释放。
2、Lock只有代码块锁,synchronize有代码块锁和方法锁。
3、使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类,比如:ReentrantLock)
4、优先使用顺序:
Lock>同步代码块(方法体中的代码块,分配了相应的资源)>同步方法(在方法体之外)
1、Lock是显示锁(手动开启和关闭,别忘记关闭),synchronize是隐式锁,出了所用域自动释放。
2、Lock只有代码块锁,synchronize有代码块锁和方法锁。
3、使用Lock锁,JVM将花费较少的时间来调度线程,性能更好。并且具有更好的扩展性(提供更多的子类,比如:ReentrantLock)
4、优先使用顺序:
Lock>同步代码块(方法体中的代码块,分配了相应的资源)>同步方法(在方法体之外)