ReentrantLock锁: 1.避免死锁 2.提升封装性
lock.getHoldCount() 表示上锁的次数,当前线程对该锁的保持次数;如果当前线程未保持此锁,则为零
ReentrantLock的其他方法介绍::
isHeldByCurrentThread 可以看出锁是否被当前线程持有
getQueueLength 可以返回当前正在等待这把锁的队列有多长,一般这两个方法是开发和调试使用,上线后用到的不多
public class GetHoldCount {
private static ReentrantLock lock = new ReentrantLock();
public static void main(String[] args) {
System.out.println(lock.getHoldCount());
lock.lock();
System.out.println(lock.getHoldCount());
lock.lock();
System.out.println(lock.getHoldCount());
lock.lock();
System.out.println(lock.getHoldCount());
lock.unlock();
System.out.println(lock.getHoldCount());
lock.unlock();
System.out.println(lock.getHoldCount());
}
}