synchronized关键字

Java SE 1.6为了减少获得锁和释放锁带来的性能消耗而引入了偏向锁和轻量级锁。 

java中每一个对象都可以作为锁。具体表现为以下3中形式:

1、对于普通同步方法,锁是当前实例对象。

2、对于静态同步方法,锁是当前类的Class对象。

3、对于同步方法块,锁是Synchronized括号里配置的对象。

偏向锁:当一个线程访问同步块并获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程ID,以后该线程在进入和退出同步块时不需要进行CAS操作来加锁和解锁。

轻量级锁

重量级锁

你可能感兴趣的:(synchronized关键字)