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

spinlock 使用介绍

一、spinlock 简介

自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,不断尝试获取锁,直到获取到锁才会退出循环。

二、自旋锁与互斥锁的区别

自旋锁与互斥锁类似,它们都是为了解决对某项资源的互斥使用,在任何时刻最多只能有一个线程获得锁。

对于互斥锁,如果资源已经被占用,调用者将进入睡眠状态
对于自旋锁,如果资源已经被占用,调用者就一直循环在那里,看是否自旋锁的保持者已经释放了锁

三、自旋锁的优缺点

自旋锁不会使线程状态发生切换,不会使线程进入阻塞状态,减少了不必要的上下文切换,执行速度快。非自旋锁在获取不到锁的时候会进入阻塞状态,从而进入内核态,当获取到锁的时候需要从内核态恢复,需要线程上下文切换,影响性能。
如果某个线程持有锁的时间过长,就会导致其它等待获取锁的线程长时间循环等待消耗CPU,造成CPU使用率极高。

原文链接:https://blog.csdn.net/chenwh_cn/article/details/117227454

相关文章:

  • Spring事务(Transaction)
  • Ajax-hook 原理解析
  • JavaScript Array 对象
  • SOCKET句柄泄露带来的内存灾难
  • 浪潮服务器安装Windows Server 2008 R2蓝屏
  • Linux服务器安装Windows虚拟机
  • AD域的详细介绍
  • 网络连接的三种模式:桥接模式,NAT模式,仅主机模式
  • 蓝牙怎么区分单模和双模_双十二无线外设怎么选,手把手教你选购无线外设圆梦无线桌面...
  • 学习5g通信心得体会_从IoT到5G I-IoT:下一代基于IoT的智能算法和5G技术
  • c++大作业迷宫游戏 规定时间内完成_小学生做作业磨蹭的7个原因及对策(老师转给家长)...
  • pyqt联动多层级下拉框_pyqt5-下拉框联动效果
  • python人工智能 动漫生成_使用Python来看看动漫中的你
  • 形容等待时间长的句子_形容“等待时间长”的成语有哪些?
  • ueditor统计字数中文_百度UEditor修改右下角统计字数包含html样式
  • 收藏网友的 源程序下载网
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • ERLANG 网工修炼笔记 ---- UDP
  • ES2017异步函数现已正式可用
  • Java IO学习笔记一
  • jdbc就是这么简单
  • js 实现textarea输入字数提示
  • nginx 配置多 域名 + 多 https
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 手机端车牌号码键盘的vue组件
  • 项目实战-Api的解决方案
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​Spring Boot 分片上传文件
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #Z0458. 树的中心2
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (三)mysql_MYSQL(三)
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • . NET自动找可写目录
  • ../depcomp: line 571: exec: g++: not found
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET 读取 JSON格式的数据
  • .Net多线程总结
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .NET学习全景图
  • @Import注解详解
  • @media screen 针对不同移动设备
  • @property @synthesize @dynamic 及相关属性作用探究
  • @RequestMapping 的作用是什么?