天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

lock free在linux中的应用场景

2013-3-13中国IT实验室佚名

  lock free在linux中的三种应用场景

  1.自旋锁:

  Spin Lock

  当lock操作被阻塞时,线程并不是把自己立即挂起,而是间断性的做自旋(自循环)操作让CPU空转来等待其他线程释放lock

  2.顺序锁

  Seqlock

  允许读写并行。实现原理是通过设定一个计数器,当写操作进行时,将计数器原子的加1,在读操作开始和结束前,都去比较一下计数器的值,如果相等,说明未发生过写操作,如果不相等,则读操作从头进行一次。在写操作频繁的场景下,可能会导致读操作频繁的重复进行

  3.RCU

  Read-Copy-Update

  写操作进行时,复制当前数据结构,申请新内存空间,然后对副本进行修改,将原数组内容复制到new空间中,赋新值,修改完毕后,写者修改原数据结构的指针,使之指向新地址,然后再调用内存屏障,让新值对其他CPU可见,最后释放原结构数据

本文来源:中国IT实验室 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行