多线程操作---可重入锁概念
//可重入锁的概念是 自己可以再次获得自己的内部锁,
//重进入的实现是通过每个锁关联一个请求计数和一个占有它的线程,当计数为0时,认为锁是未被占有的,线程请求一个未被占有的
//锁时,jvm将记录锁的占有者,并将请求计数置为一,如果同一个线程再次请求,计数器将递增,每次占用线程退出同步块
//计数器值将递减,直到计数器为0,锁释放
//如果内部锁不是可重入的,代码将死锁
class Widget{public synchronized void doSomething(){}} class LoggingWidget extends Widget{ public synchronized void doSomething(){ System.out.println("1111"); super.doSomething(); //这里需要再次获得自己的锁,如果锁不可重入将导致死锁 } }