- 主题:Int变量赋值是不是原子操作?
atomic原理是啥,是不是就是自动加了个锁之类的?这样是不是效率就低了
【 在 milksea 的大作中提到: 】
: 再研究这个没什么现实意义。你要写并发程序,那就直接用atomic库提供的接口,c或者c++都有,库不全哪怕内嵌汇编呢,反正是没有硬写c代码然后指望它正好没出错的道理。
--
FROM 107.182.188.*
atomic不是锁,倒是实现无锁结构的基础。这种库会要求编译器以具体cpu相关的方式实现操作,这可能是用了专门的原子指令,可能加锁,也可能就用普通的mov指令,但能保证是对的。
不正确的程序谈不到效率。
【 在 wjhtingerx 的大作中提到: 】
: atomic原理是啥,是不是就是自动加了个锁之类的?这样是不是效率就低了
:
:
: ...................
--
修改:milksea FROM 114.254.9.*
FROM 114.254.9.*
记得X86下,自然对齐的int赋值是原子操作
【 在 wjhtingerx 的大作中提到: 】
: 比如:
: int a, b;
: a = 1; //这个是原子操作吗?
: ...................
--
修改:jjfz FROM 111.197.236.245
FROM 111.197.236.245
x86赋值就是原子的。包括FLOAT double。
但是但是都有一个前提,不能跨cacheline。
所以除非你知道cacheline,否则就老老实实的同步手段吧。
【 在 wjhtingerx 的大作中提到: 】
: 比如:
: int a, b;
: a = 1; //这个是原子操作吗?
: ...................
--来自微微水木3.5.14
--
FROM 183.193.19.*