当前位置: 首页 > 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.yayakq.cn/news/579587/

相关文章:

  • 网站开发人员配备邢台企业网站建设公司
  • 郑州外语网站建站优化免费搭建微信网站设计
  • 永嘉网站建设wordpress升级失败
  • 建一个图片类网站需要多少钱微网站设计
  • 网站开发验收资料正规的食品行业网站开发
  • 住房和城乡建设部网站职责湖南金科建设有限公司网站
  • 量个网站一个域名劳务外包公司
  • 成都建站优化百度推广网站
  • 企业营销型网站建设公司dw网页制作完成后如何保存
  • 音乐网站开发思路网站如何做微信支付
  • excel如何做超链接网站长春网站建设手机版
  • 网站开发速成培训机构网站开发定制企业
  • 如何用ps做网站页面设计建网站服务器怎么选
  • 株洲建设网站温岭市建设规划局网站
  • 苏州网站建设服务公司京东的网络营销策略
  • 江镇做包子网站企业网络营销策划方案范文
  • 做网站一个月30ip重庆造价信息网官网首页
  • 广州市公司网站建设公司怎么查看网站是否做静态化处理
  • 网站建设哪里最便宜盘锦seo网站建设
  • 阿里云和wordpress网站seo诊断评分63
  • 梧州网站推广外包服务洛阳公司注册
  • 做少儿培训网站的公司wordpress中文安装教程
  • 信息管理系统网站开发教程网站设计个人
  • 做网站如何组建域名外汇直播室都是网站做的
  • 做网站有效果吗网站做优化有效吗
  • 北京网站建设cnevo电子商务网站建设的论文
  • 阿里巴巴做特卖的网站求职简历免费模板
  • dw建网站怎么做如何用网站模板建设网站
  • 佛山手机建站模板做网站的公司怎样收费
  • 贵安新区城乡住房建设厅网站做旅行社业务的网站都有哪些