synchronized的实现原理和应用
在多线程并发编程中synchronized是元老级的角色,人多称重量级锁。
synchronized实现同步的基础:Java中的每一个对象都可以作为锁。具体表现有如下3种:
1.对于普通同步方法,锁时当前实例对象
2.对于静态同步方法,锁时当前类的Class对象
3.对于同步方法块,锁是synchronized括号里配置的对象
Java SE 1.6之后进行了优化,为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和
轻量级锁,以及锁的存储结构和升级过程。锁一共有四种状态:无锁状态、偏向锁状态、轻量级锁状态
和重量级锁状态,会随着竞争情况逐渐升级。锁升级不能降级的策略,目的是为了提高获得锁和释放锁
的效率。
IT技术和行业交流群 417691667