当前位置: 首页 > news >正文

【吊打面试官系列】Java高并发篇 - 什么是自旋 ?

大家好,我是锋哥。今天分享关于 【什么是自旋 ?】面试题,希望对大家有帮助;

什么是自旋 ?

很多 synchronized 里面的代码只是一些很简单的代码,执行时间非常快,此时等待的线程都加锁可能是一种不太值得的操作,因为线程阻塞涉及到用户态和内核态切换的问题。

1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 

既然synchronized 里面的代码执行得非常快,不妨让等待锁的线 程不要被阻塞,而是在 synchronized 的边界做忙循环,这就是自旋。如果做了多次忙循环发现还没有获得锁,再阻塞,这样可能是一种更好的策略。

相关文章:

  • js实现基础购物车的制作
  • Debian常用指令指南:高效管理你的Linux系统
  • vue-标签选择
  • HTML (总结黑马的)
  • JVM学习笔记(持续更新)
  • React(四)memo、useCallback、useMemo Hook
  • 机器学习各个算法的优缺点!(上篇) 建议收藏。
  • VUE阻止浏览器记住密码若依CLOUD(INPUT框密码替换圆点)
  • 一个可以自动生成随机区组试验的excel VBA小程序
  • uniapp使用数据持久化存储
  • 【JavaEE进阶】——Mybatis操作数据库(使用注解和XML方式)
  • docker部署Minio对象存储及使用
  • mongodb 编码格式 Detected BSON
  • Golang中的 defer 关键字和Python中的上下文管理with关键字
  • 数据治理-数据标准演示
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Git初体验
  • iOS | NSProxy
  • iOS编译提示和导航提示
  • Java应用性能调优
  • NSTimer学习笔记
  • Protobuf3语言指南
  • ReactNative开发常用的三方模块
  • Redis字符串类型内部编码剖析
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 机器学习学习笔记一
  • 离散点最小(凸)包围边界查找
  • 前端知识点整理(待续)
  • 全栈开发——Linux
  • 数组的操作
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 你对linux中grep命令知道多少?
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 通过调用文摘列表API获取文摘
  • ### RabbitMQ五种工作模式:
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #if和#ifdef区别
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (1)STL算法之遍历容器
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (2)MFC+openGL单文档框架glFrame
  • (2.2w字)前端单元测试之Jest详解篇
  • (Ruby)Ubuntu12.04安装Rails环境
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二刷)代码随想录第16天|104.二叉树的最大深度 559.n叉树的最大深度● 111.二叉树的最小深度● 222.完全二叉树的节点个数
  • (每日一问)基础知识:堆与栈的区别
  • (南京观海微电子)——COF介绍
  • (四)js前端开发中设计模式之工厂方法模式
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转载)从 Java 代码到 Java 堆
  • (转载)虚函数剖析
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值