首页 > 其他分享 >线程同步之自旋锁--SpinLock

线程同步之自旋锁--SpinLock

时间:2024-07-10 13:42:26浏览次数:8  
标签:-- lock pthread 互斥 线程 自旋 Core0 SpinLock

目录


自旋锁和互斥锁的区别

从实现原理上来讲,Mutex属于sleep-waiting类型的锁。例如在一个双核的机器上有两个线程(线程A和线程B),它们分别运行在Core0和Core1上。

  • 假设线程A想要通过 pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正被线程B所持有,那么线程A就会被阻塞(blocking),Core0 会在此时进行上下文切换(Context Switch)将线程A置于等待队列中, 此时Core0就可以运行其他的任务(例如另一个线程C)而不必进行忙等待。
  • 而Spin lock则不然,它属于busy-waiting类型的锁,如果线程A是使用pthread_spin_lock操作去请求锁,那么线程A就会一直在 Core0上进行忙等待并不停的进行锁请求,直到得到这个锁为止。

标签:--,lock,pthread,互斥,线程,自旋,Core0,SpinLock
From: https://www.cnblogs.com/yubo-guan/p/18293895

相关文章

  • 解析Count函数
    #count(*),count(主键),count(字段)和count(1)有什么区别?哪个性能最好?绝对不是count(*)最慢!哪种count性能最好?我先直接说结论:要弄明白这个,我们得要深入count的原理,以下内容基于常用的innodb存储引擎来说明。count()是什么?count()是一个聚合函数,函数的参数不......
  • MySQL中datetime和timestamp的区别
    #MySQL中datetime和timestamp的区别相同点两个数据类型存储时间的格式一致。均为YYYY-MM-DDHH:MM:SS两个数据类型都包含「日期」和「时间」部分。两个数据类型都可以存储微秒的小数秒(秒后6位小数秒)自动更新和默认值TIMESTAMP:支持默认值为当前时间,且在记录更新时可以......
  • 【2023-2024第二学期】助教工作学期总结
    一、助教工作的具体职责和任务1、帮助同学解答问题2、批改同学们的作业3、在实验课上引导同学们排错,加深对实验内容的理解4、及时向老师反馈同学们的问题5、负责开实验室,最后一个离开实验室检查所有设备是否都关6、考前在实验室帮助同学们复......
  • ES相关面试题
    题目:全文搜索对应的是什么功能,怎么构建索引,查询的时候怎么查怎么构建倒排索引,使用MySQL可以实现倒排索引的功能吗前情提要:我的项目中的商城项目中存在使用ElasticSearch的情况,所以特地弄了此篇来应对提问,以及还有一个爬虫项目中也使用到了questionOne全文搜索......
  • 掌握Conda配置术:conda config命令的深度指南
    掌握Conda配置术:condaconfig命令的深度指南引言Conda是一个功能强大的包管理器和环境管理器,广泛用于Python和其他科学计算语言的依赖管理。condaconfig命令是Conda套件中用于配置和自定义Conda行为的关键工具。通过这个命令,用户可以调整Conda的设置,包括环境路径、软件包......
  • 会话无界:Eureka中服务的分布式会话管理策略
    会话无界:Eureka中服务的分布式会话管理策略引言在微服务架构中,随着服务数量的增加,传统的会话管理方法面临着诸多挑战,如数据一致性、服务隔离和水平扩展等。Eureka作为Netflix开源的服务发现框架,虽然本身不直接提供会话管理功能,但可以与其他技术结合使用,实现服务的分布式会......
  • 大数据来袭:在Postman中巧妙处理大型响应数据的秘籍
    ......
  • 掌握Perl命令行:深入解析命令行参数的艺术
    ......
  • 使用引用 XML 文件来优化 EtherCAT ESI 文件的描述
    使用引用XML文件来优化EtherCATESI文件的描述在EtherCAT系统中,ESI(EtherCATSlaveInformation)文件是描述EtherCAT从设备属性和行为的重要文件。随着系统复杂度的增加,ESI文件的内容可能会变得非常庞大和冗余。为了优化这些文件,我们可以通过引用其他XML文件......
  • Matebook14 2020款 更换固态(全流程)
    Matebook142020款更换固态全流程因为工作的原因需要升级存储,我的老款的Matebook14只有512G。网络上的中文教程普遍比较古老。特此写下这篇笔记希望能帮助到有需要的朋友。工具螺丝刀(四花00和六花T4)新的固态硬盘U盘(容量不小于1G)移动硬盘(容量不能小于你的系统镜像)操作流......