呼び出しの間に違い(または起こりうる副作用)があるかどうか疑問に思います:
AtomicBoolean.set(true)
と
AtomicBoolean.compareAndset(false, true)
状態のJavaDoc AtomicBoolean#set
:
無条件に指定された値に設定されます。
状態中AtomicBoolean#compareAndSet
:
現在の値==期待値の場合、原子的に値を指定された更新された値に設定します。
どちらの場合も、値はtrueに設定されます。では、違いは何ですか?