Avatar
omochimetaru 7/21/2017 1:43 AM
そこはまだまって
1:44 AM
疑問は二つで、 - C++ において int の代入は atomic なのか - atomic だと仮定して↑はスレッドセーフなのか
1:44 AM
「intの代入はatomicなのか」って質問がすごく難しくて
1:44 AM
少なくとも
1:44 AM
アトミックな型はC++においてデータ競合の問題が発生しない唯一の型です。つまり、あるスレッドがアトミックなオブジェクトに書き込んでいる間に他のスレッドがそれを読み込んだ時、その動作はうまく定義され、未定義動作とはなりません。
なので
1:44 AM
C++規格上、intは、「同時に読み書きするとデータ競合を引き起こす型」なので
1:44 AM
未定義動作とされて
1:44 AM
ぶっ壊れる可能性がある
1:45 AM
でもそれが
1:45 AM
「atomicでない」
1:45 AM
と言えるのかよくわからないです。
1:45 AM
C++だとatomicにも4段階ぐらいのレベルがあって (edited)
1:47 AM
(調べ中