Avatar
omochimetaru 7/21/2017 2:24 AM
あー 違う意味で使ってた
2:24 AM
例えば
2:24 AM
var x = 3 x = 2
2:24 AM
こういうコードがあったとして
2:25 AM
func a() -> Int { var a = 3 a = 2 return a }
2:25 AM
上で「Intの代入がatomic」って言ったのは、「 Int に代入するとき、その操作がCPUにおいて不可分」
2:25 AM
って事ですけど
2:25 AM
func a の例で言うなら、これって
2:26 AM
func a() -> Int { return 2 } と最適化されるかもしれない
2:26 AM
あーこれだとスレッド間共有が不可能だから微妙だな
2:26 AM
func a(x: inout Int) -> Int { x = 3 x = 2 return x } (edited)
2:26 AM
これで。
2:27 AM
で、これが、1スレッドだけ考えれば func a(x: inout Int) -> Int { return 2 } (edited)
2:27 AM
に最適化される可能性があると思ってて
2:27 AM
その場合
2:27 AM
aが3になる時間や、2になる時間はなくなる。
2:27 AM
でも、 std::atomic<int> に対しては