Das Java Concurrency-Framework stellt sogenante atomic-Klassen bereit, die für Standardfälle im Umgang mit einzelnen Variablen Thread-sichere Implementierungen anbieten.

Einfach gesagt

Statt selbst Wrapper für eine Variable zu bauen, auf die Threads über synchronisierte Methoden auf den Wert zugreifen, kann man auch einfach eine Atomic-Klasse (z.B. AtomicInteger) verwenden

Beispiele

AtomicBoolean, AtomicInteger, AtomicIntegerArray, AtomicLong, AtomciLongArray, AtomicReference<V>, AtomicReferenceArray<V>, DoubleAccumulator, DoubleAdder, LongAccumulator, LongAdder