面试之多线程问题

94 阅读1分钟

1.synchronized

1)synchronized的用法

用对象、方法、class,用在类和方法上叫对象锁,用在class是方法锁

2)synchronized的锁升级过程?

I.查看对象头是否有偏向锁线程Id,若无,设置线程ID,拿到锁 II.若有,锁升级为轻量级锁,cas对象头的lockrecord指向获取的锁的线程 IV.多次cas失败,则升级为重量级锁,将获取不到锁的线程挂起。 注:cas的次数可以通过jvm参数控制,是否开启偏向锁也可以通过jvm参数设置。

3)synchronized的特性

I.可重入 II.获取释放由jvm控制