synchronized的实现原理和应用

时间:2023-03-08 20:40:45

  在多线程并发编程中synchronized是元老级的角色,人多称重量级锁。

  synchronized实现同步的基础:Java中的每一个对象都可以作为锁。具体表现有如下3种:

1.对于普通同步方法,锁时当前实例对象

2.对于静态同步方法,锁时当前类的Class对象

3.对于同步方法块,锁是synchronized括号里配置的对象

  Java SE 1.6之后进行了优化,为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和

轻量级锁,以及锁的存储结构和升级过程。锁一共有四种状态:无锁状态、偏向锁状态、轻量级锁状态

和重量级锁状态,会随着竞争情况逐渐升级。锁升级不能降级的策略,目的是为了提高获得锁和释放锁

的效率。

IT技术和行业交流群 417691667