Synchronized与Lock之间的区别
1. Synchronized是Java中的内置关键字,Lock实际上是一个接口,我们在实例化的时候实际上 是实例化实现了该接口的类。
2. Synchronized无法判断是否获得锁的状态, Lock可以判断是否获得锁的状态。
3. Synchronized会自动释放锁, Lock不会自动释放锁,需要在finally中手动释放锁,否则容易造成死锁。
4. Synchronized的锁可重入、不可中断、非公平锁,Lock锁可重入、可判断、可公平(Java中的ReentrantLock 默认的lock()方法采用的是非公平锁,ReentrantLock的实现是基于其内部类FairSync(公平锁)和NonFairSync(非公平锁)实现的)。
5. Synchronized锁适合代码少量的同步问题。 Lock锁适合大量代码同步问题。
Synchronized与Lock之间的区别
最新推荐文章于 2020-06-08 23:32:36 发布