开发者社区> 问答> 正文

什么是自旋锁?

什么是自旋锁?

展开
收起
问问小秘 2020-02-17 11:36:04 448 0
1 条回答
写回答
取消 提交回答
  • 自选听起来很高大上,其实就是等待的意思。这个是基于一种假设,正在持有锁的对象不会长时间占用,会在很短的时间释放资源,那么其他需要获取该锁的线程只需要原地等待一会就行,这个原地等待就是自选操作。

    优点:不用阻塞线程,这样就不会有很多其他的操作,比如保存那些线程私有的数据啊等等。

    缺点:首先一个很明显的缺点就是CPU会做无用功,因为自旋。并且如果一个线程长时间占有锁,那么这个性能就会大大下降。

    JDK关于自旋锁的设计:早期的jdk版本都是给自旋的时间设置了一个阈值,超时就阻塞线程,jdk1.6之后添加了自适应的自旋时间,会动态调整。

    2020-02-17 11:36:23
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载