スレッドのタイトルは自明である必要があります...AtomicBoolean
クラスからの以下のメソッドの仕様の間で少し混乱しています:
java.util.concurrent.atomic.AtomicBoolean#compareAndSet
java.util.concurrent.atomic.AtomicBoolean#getAndSet
if
私の推測では、条件でブール句として使用すると、どちらも同じ動作になります。
public class Test {
private AtomicBoolean flag = AtomicBoolean(false);
public void processSomeAction() {
if (flag.getAndSet(false)) { // Shouldn't this be similar to flag.compareAndSet(false)
// process some action
}
}
//...
private void internalMutatorMethod() {
// do some staff then update the atomic flag
flas.set(true);
}
}
現在のフラグ値を取得して自動的に更新したい場合、両方のメソッドで同じ動作が発生するのではないでしょうか?
内部の違いがない場合は、それぞれをいつどのように使用するかについての説明をいただければ幸いです。