Java 有什么锁

Java 有什么锁类型?答: 自旋锁,读写锁,CAS操作,CAS的ABA问题,锁膨胀问题。

你知道哪些锁?

我:不就synchronized一种锁吗?(我好像曲解了她的意思)然后synchronized对应有三种锁状态:偏向锁、轻量级锁、重量级锁

syn锁,jvm里面分成偏向锁、轻量级锁、重量级锁,其之间的转换过程是怎么样的,各自适用场景是什么样的,偏向锁情况产生竞争一定会膨胀成轻量级锁吗,为什么只能单向转换,比如偏向锁变成轻量级锁变成重量级锁之后不会在竞争消失之后在回到偏向锁,必须要重启jvm才行,是出于什么情况考虑的
 
8 Java里的锁了解哪些,说了Lock和synchronized

9 它们的使用方式和实现原理有什么区别呢,使用的话,synchronize用于方法和代码块,可以锁对象和类以及方法,Lock一般锁一块代码。并且Lock可以搭配condition使用。
实现原理的话,synchronized使用底层的mutex锁,需要系统调用,而Lock则使用AQS实现。

10 synchronized锁升级的过程,说了偏向锁到轻量级锁再到重量级锁,然后问我它们分别是怎么实现的,解决的是哪些问题,什么时候会发生锁升级。

猜你喜欢

转载自www.cnblogs.com/twoheads/p/10148598.html