请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

偏向锁到底有没有CAS操作?

老师说偏向锁没有CAS操作,这个说法老师确认是正确的吗?我在别的地方查资料看到说,线程将锁从无锁改为偏向锁时采用的就是CAS机制,只是线程在获取到偏向锁后,再次获取锁则不需要CAS操作。不知道哪个说法正确呢?

正在回答 回答被采纳积分+3

1回答

翔仔 2020-11-21 00:12:02

偏向锁没有CAS,只是在对象头存了下threadid

0 回复 有任何疑惑可以回复我~
  • 翔仔,我看你在另一个类似的问题中说第一次获取偏向锁是有CAS操作的,原话是这样说的:“同学好,第一次还是通过CAS操作拿到锁的,但是由于此时没有别的线程占用,属于第一次,基本就不没有消耗,而重入的时候,就是不需要作CAS操作”,下面跟着详细的源码解释,所以偏向锁到底有没有CAS操作?
    回复 有任何疑惑可以回复我~ 2021-12-07 13:21:49
  • 翔仔 回复 Meteor流星 #2
    同学好,源码来看是调用CAS进行操作的,这里更正一下,但是这步cas操作个人觉得意义不是很大,基本没有开销,就是一个存threadid的过程,所以实际上我理解根本没有真的用到cas特性 以 https://coding.imooc.com/learn/questiondetail/189437.html 的回答为准哈 抱歉
    回复 有任何疑惑可以回复我~ 2021-12-07 23:57:49
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信