JavaのAtomicIntegerFieldUpdateクラスは、変数をアトミックに更新できます
この変数には次の制約があります。
- アップデーターは、パッケージタイプIntegerではなく、タイプintでなければなりません。
- 更新者は、変数がスレッド間で共有されたときにすぐに表示されるように、変更された揮発性変数を更新する必要があります。
- 変数は静的変数で変更できません。インスタンス変数でなければなりません。Unsafe.objectFieldOffset()メソッドは静的変数をサポートしないため(CAS操作は基本的にオブジェクトインスタンスのオフセットを介した直接割り当てです)、
- アップデーターはリフレクションを通じてこの変数を取得するため、アップデーターはその可視範囲内の変数のみを変更でき、変数が可視でない場合はエラーが報告されます。