1. ホーム
  2. java

[解決済み] Javaではどのような操作がアトミックとみなされるのですか?

2023-05-12 07:32:46

質問

Javaではどのような操作がアトミックとみなされるのでしょうか?

どのように解決するのですか?

  • longとdoubleを除くプリミティブ型のすべての代入が可能です。
  • 参照のすべての割り当て
  • volatile 変数のすべての割り当て
  • java.concurrent.Atomic*クラスのすべての操作

と、たぶんもっと何かあるはずです。を見てください。 jls .

コメントで指摘されているように、アトミティは可視性を意味するものではありません。ですから、他のスレッドが部分的に書かれた int を見ないことが保証されていますが、新しい値は決して見ないかもしれません。

longとdoubleの演算は、一般的な64bitCPUの場合 アトミックでも となります。こちらもご覧ください 機能要求 .