1 lock是显示锁(手动开启和关闭锁,别忘关闭锁)synchronized是隐式锁
2 Lock只有代码块锁,synchronized有代码块锁和方法锁,
3 使用lock锁,JVM讲话费较少的时间来调度线程,性能更好,并且具有更好的扩展性(提供更多的子类)
4 Lock确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。Lock()方法会对lock()实例对象进行加锁,因此所有对该对象调用lock()方法的线程都会被阻塞,直到该lock对象的unlock()方法被调用
网友评论