AtomicBoolean , compareAndSet. : "" . : (a) , , (b) , (c) true, ( , ).
private static final AtomicBoolean hasRun = new AtomicBoolean(false);
...
if (hasRun.compareAndSet(false, true)) {
}
, hasRun "false" ( ). , "true" if; if. , check-and-set ( ), , ; true, "" .