アトミック性(Atomicity)とは何か

可視性/観測性に着目さた定義の仕方が秀逸と感じたので、メモとして残しておきます。

アトミック性という考え方に実務のなかで触れる場面は色々あります。たとえば、トランザクション処理を考える際のACID特性のA。 また、ある処理を並行で実行しても問題ないか?という文脈でも類似のことを検討することが多いです。Linuxのコマンドでも処理がアトミックなものとそうでないものが混在しており、スクリプトを設計する際に考慮が必要なケースがあります。

アトミック性(原子性,不可分性)とは,その 操作の途中状態が外部(例えば,他のスレッド)から観測できない ことです。 ここでいう「観測できない(見えない)」は,ハードウェア的にどう頑張っても観測できないように作られている仕組みを使うのはもちろん,ロックなどの同期機構を用いて「見ないようにする」ことでも達成できます。

変数へ値が完全に書かれたか,あるいはまったく書かれていないかのどちらかの状態しか観測できないとき,その変数への書き込みはアトミックです。 逆に,アトミック性が無い場合は外部から途中状態が観測できてしまいます

https://uchan.hateblo.jp/entry/2020/06/19/185152

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */