ReentrantLock 的使用
- new 一个对象
- 获得锁
- 执行任务
- 释放锁
使用代码
Lock lock = new ReentrantLock();
lock.lock();
try {
// update object state
}
finally {
lock.unlock();
}
ReentrantLock 属于显示锁
式锁除了使用起来更加灵活,它还能提供内置锁没有的功能:
- 轮询锁
- 定时锁
- 可中断的锁
除此之外,显式锁还能工作在「公平模式」,也就是说在多个线程争夺某个锁时,这些线程会排队,挨个获取,而不是无序的抢着用。但是,公平锁会把性能降低约两个数量级,所以只有真正需要公平机制的时候才启用显式锁的公平模式。
ReentrantReadWriteLock 读写锁
在读写频繁的情况下,读写锁能到来性能提升,在其他情况下,读写锁可能性能会略差,因为它的实现更复杂。
本文详细介绍了ReentrantLock的使用方法,包括如何创建锁对象、获取和释放锁,以及其提供的高级功能如轮询锁、定时锁和可中断锁。同时,文章探讨了显式锁的公平模式和性能影响,以及ReentrantReadWriteLock读写锁在高并发场景下的优势。
2万+

被折叠的 条评论
为什么被折叠?



