【JAVA并发编程】锁的四种状态及升级

JAVA并发编程

锁的四种状态

锁的状态分为四种:无锁,偏向锁,轻量级锁,重量级锁!拿synchronized代码块举例!(早期的版本直接是重量级锁,后续jvm进行了锁升级优化)

无锁

当没有线程执行代码块里面的语句时!

偏向锁

当只有一个线程执行代码块时!

轻量级锁

当多个线程产生竞争时,synchronized的轻量级锁其实是自旋锁!

重量级锁

当线程自旋一段时间还是没获取锁时!进入阻塞状态!

你可能感兴趣的:(java)