ReentrantLock锁: 1.避免死锁 2.提升封装性

    lock.getHoldCount() 表示上锁的次数,当前线程对该锁的保持次数;如果当前线程未保持此锁,则为零

    ReentrantLock的其他方法介绍::
    isHeldByCurrentThread 可以看出锁是否被当前线程持有
    getQueueLength 可以返回当前正在等待这把锁的队列有多长,一般这两个方法是开发和调试使用,上线后用到的不多

    1. public class GetHoldCount {
    2. private static ReentrantLock lock = new ReentrantLock();
    3. public static void main(String[] args) {
    4. System.out.println(lock.getHoldCount());
    5. lock.lock();
    6. System.out.println(lock.getHoldCount());
    7. lock.lock();
    8. System.out.println(lock.getHoldCount());
    9. lock.lock();
    10. System.out.println(lock.getHoldCount());
    11. lock.unlock();
    12. System.out.println(lock.getHoldCount());
    13. lock.unlock();
    14. System.out.println(lock.getHoldCount());
    15. }
    16. }