ReentrantLock与Synchronized的异同
相同:
都是用于协调多线程对共享变量或对象的访问
都是可重入锁,同一线程可多次获得同一个锁
都保证了可见性和互斥性
不同:
ReentrantLock可中断,synchronized不可中断
ReentrantLock 需要手动获取和释放锁,synchronized自动获取和释放锁
synchronized 出现异常可以自动释放锁,ReentrantLock 出现异常不会自动释放锁,可能会导致死锁的出现,因此使用ReentrantLock都必须在finally块中手动释放锁。
ReentrantLoc
原创
2020-08-17 17:26:59 ·
151 阅读 ·
0 评论