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

电子公章在线制作网站云速成美站做网站好吗

电子公章在线制作网站,云速成美站做网站好吗,什么网站做全景效果图好,网络科技有限公司官网原子操作和自旋锁的区别 相同点都是保护共享资源。 不同点在于: 原子操作简单易用,但只能做计数操作,保护的东西太少。 自旋锁主要用于多核处理器。短时期的轻量级加锁,加锁失败时原地打转、忙等待。避免了上下文调度和系统开销较…

原子操作和自旋锁的区别

相同点都是保护共享资源。

不同点在于:

原子操作简单易用,但只能做计数操作,保护的东西太少。

自旋锁主要用于多核处理器。短时期的轻量级加锁,加锁失败时原地打转、忙等待。避免了上下文调度和系统开销较小。

自旋锁

加锁步骤

查看锁的状态

如果锁是空闲的,将锁设置为当前线程持有

存在问题

在没有CAS函数前,多个线程同时执行这两个步骤会出错。

解决方案

CAS函数把这两个步骤合并为一条硬件级指令。第1步的比较锁状态和第2步的锁变量赋值,将变为不可分割的原子指令(硬件同步原语)

CAS函数

自旋锁使用CPU提供的CAS(Compare And Swap)函数,在用户态代码中完成加锁与解锁操作。

PAUSE指令

自旋锁并不一直忙等待,会与CPU紧密耦合,它通过CPU提供的PAUSE指令,减少循环等待时的耗电量;对于单核CPU,忙等待并没有意义,此时它会主动把线程休眠。

自旋锁原理

设自旋锁为变量lock,整数0表示锁是空闲状态,整数pid表示线程ID。

CAS(lock, 0, pid)表示自旋锁的加锁操作

CAS(lock, pid, 0)表示自旋锁的解锁操作

自旋锁伪代码

while (true)
{//因为判断lock变量的值比CAS操作更快,所以先判断lock再调用CAS效率更高if (lock == 0 && CAS(lock, 0, pid) == 1){return;}if (CPU_count > 1 ){ //如果是多核CPU,“忙等待”才有意义for(n = 1; n < 2048; n <<= 1){//pause的时间,应当越来越长for (i = 0; i < n; i++){pause();//CPU专为自旋锁设计了pause指令}if (lock == 0 && CAS(lock, 0, pid)){return;//pause后再尝试获取锁}}}sched_yield();//单核CPU,或者长时间不能获取到锁,应主动休眠,让出CPU
}

自旋锁相关API

定义自旋锁

spinlock_t s_lock ;

初始化自旋锁

int spin_lock_init(spinlock_t *lock);

获取自旋锁函数

//加锁
void spin_lock(spinlock_t *lock)

尝试获取自旋锁函数

尝试获取一次,获取成功返回“true”,获取失败返回“false”。程序继续往下执行
与上面的区别就是非阻塞

int spin_trylock(spinlock_t *lock)

释放自旋锁

void spin_unlock(spinlock_t *lock);

http://www.sczhlp.com/news/112290/

相关文章:

  • 哔哩哔哩网站4 3比例怎么做游戏大厅定制游戏开发
  • 字符串转 python 对象 eval
  • 蛋白多序列比对美化
  • Gitee推出Remote mcp-gitee:云端MCP服务开启智能协作新时代
  • Gitee DevOps平台:驱动中国企业数字化转型的核心引擎
  • 免费网站建设程序河南网页设计公司
  • 网站内容排版设计产品报价网站建设费用
  • 网站seo是什么优秀网站共分享
  • wordpress修改管理密码网站优化查询代码
  • 福田网站建设 信科网络南昌天和建设有限公司网站
  • 品牌高端网站制作凡科快图官网登录入口在线
  • wap网站开发平台国内永久免费crm不实名认证
  • 国产化Excel开发组件Spire.XLS教程:C# 轻松将 DataSet 导出到 Excel
  • webshell流量 - voasem
  • Mysql:Docker的Mysql容器加载Levenshtein 距离算法脚本,实现“相似度匹配”
  • 门户网站通俗理解03340网站建设与管理
  • 人是用什么做的视频网站百度采购网官方网站
  • 西安网站设计西安搜推宝wordpress tag优化
  • 网站关键词挖掘温岭市市住房和城乡建设规划局网站
  • 想学会网站建设要会什么天津商城网站建设
  • 【2025-09-17】慢慢得到
  • Excel处理控件Aspose.Cells教程:如何使用Python在Excel中创建下拉列表
  • STM32的电子钟功能实现
  • 触动网站建设wordpress底部漂浮
  • 怎么做商品购买网站如何做好网站搜索引擎优化
  • 互联网行业的开发网站湖北企业商城网站建设
  • 兰州市住房和城乡建设厅官方网站杭州金融网站建设
  • 游戏网站模板免费下载网站开发一般多少钱
  • 甘南州城乡建设局网站wordpress柒主题
  • 移动端企业网站模板下载专业做网站建设公司怎么样