ReentrantLock面试总结
1. 你了解ReentrantLock吗?
- ReentrantLock是基于AQS框架实现的锁,它类似于Synchronized互斥锁,可以保证线程安全。
- ReentrantLock相比Synchronized,拥有更多的特性,比如支持手动加锁、解锁,支持公平锁等。
2. 什么是AQS?
AQS定义了一套多线程访问共享资源的同步器框架,是一个依赖状态的同步器。AQS定义了很多并发中的行为,比如:
阻塞等待队列、共享/独占、公平/非公平、可重入、允许中断
3. Synchronized和ReentrantLock的相同点?
- .ReentrantLock和synchronized都是独占锁,只允许线程互斥的访问临界资源
- ReentrantLock和synchronized都是可重入的。synchronized因此可以放在被递归执行的方法上,且不用担心线程最后能否正确释放锁;而ReentrantLock在重入时要却确保重复获取锁的次数必须和重复释放锁的次数一样,否则可能导致其他线程无法获得该锁。