Lock锁只能用于代码块,是显示锁,需要自己开启和关闭锁,一般在try中加锁,finally中解锁。synchronized可用于方法和代码块,是隐式锁,出了作用域会行解锁。可优先考虑使用Lock锁,调度性能相对高一点,并且提供了更多的子类。如可重入锁
ReentrantLock