1.可重入锁又名递归锁,是指同一个线程在外层方法获取锁的时候,在进入内层方法会自动获取锁
2.对于Java ReetrantLock而言,从名字就可以看出是一个重入锁,其名字是Re entrant Lock 重新进入锁。
3.对于synchronized而言,也是一个可重入锁.可重入锁的一个好处是可一定程度避免死锁
辅助理解
synchronized void setA() throws Exception{
Thread.sleep(1000);
setB();
}
synchronized void setB() throws Exception{
Thread.sleep(1000);
}
上面的代码就是一个重入锁的一个特点.如果不是可重入锁,setB可能不会被当前线程执行,可能造成死锁.