java.util.concurrent.atomic.AtomicLongFieldUpdater
java.util.concurrent.atomic.AtomicIntegerFieldUpdater
java.util.concurrent.atomic.AtomicReferenceFieldUpdater
static final
.
Because only one atomic field updater is needed for updating a volatile
field in all instances
of a class, it can almost always be static
.
Making the updater final
allows the JVM to optimize access for improved performance.
Example:
class Main { private volatile int id; private AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id"); }
After the quick-fix is applied:
class Main { private volatile int id; private static final AtomicIntegerFieldUpdater<Main> idFieldUpdater = AtomicIntegerFieldUpdater.newUpdater(Main.class, "id"); }