可重入锁的记录

  1. 可重入锁
    方法A加锁,方法B加锁。
    方法A内部调用方法B。
    同一个线程,同一个对象的情况下,方法A拿到锁L,执行方法B的时候,方法B发现方法A已经有锁L了,直接拿锁L来用,方法B不会阻塞死锁继续执行,知道方法A执行完毕释放锁L。
  2. 不可重入锁
    方法A调用方法B,方法A使用锁L,执行到方法B的时候,方法B也想要使用锁L,但是此时A没有释放锁L,导致B拿不到锁L,出现阻塞。B在A方法体里面调用,等不到A释放锁L

你可能感兴趣的:(java,jvm,开发语言)