码迷,mamicode.com
首页 > 其他好文 > 详细

原子操作

时间:2017-07-28 15:49:16      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:访问   多个   com   访问控制   intel   多线程程序   sof   war   问控制   

原子操作类似数据库中的事务,操作中的所有指令要么全部执行,要么全部不执行。

以自增操作为例,a++对应三个CPU指令:

  1. 从内存将a当前值写入寄存器
  2. 在寄存器中将a加一
  3. 将新的a值写入内存

在单核多线程程序中,如果对一个变量的自增操作是原子的,那么就没有必要在自增操作外围加锁了。

在多核多线程程序中,由于自增操作可以在多个CPU中同步执行,即使自增操作是原子的,我们也需要使用锁或其他机制实现访问控制。

 

参考资料:

关于单CPU,多CPU上的原子操作

原子操作

标签:访问   多个   com   访问控制   intel   多线程程序   sof   war   问控制   

原文地址:http://www.cnblogs.com/gattaca/p/7250285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!