Package com.bytedesk.core.uid.utils
Class PaddedAtomicLong
java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
com.bytedesk.core.uid.utils.PaddedAtomicLong
- All Implemented Interfaces:
Serializable
Represents a padded
AtomicLong
to prevent the FalseSharing problem
The CPU cache line commonly be 64 bytes, here is a sample of cache line after padding:
64 bytes = 8 bytes (object reference) + 6 * 8 bytes (padded long) + 8 bytes (a long value)
- Author:
- yutianbao
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionlong
To prevent GC optimizations for cleaning unused padded referencesMethods inherited from class java.util.concurrent.atomic.AtomicLong
accumulateAndGet, addAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, decrementAndGet, doubleValue, floatValue, get, getAcquire, getAndAccumulate, getAndAdd, getAndDecrement, getAndIncrement, getAndSet, getAndUpdate, getOpaque, getPlain, incrementAndGet, intValue, lazySet, longValue, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
Methods inherited from class java.lang.Number
byteValue, shortValue
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
p1
public volatile long p1Padded 6 long (48 bytes) -
p2
public volatile long p2Padded 6 long (48 bytes) -
p3
public volatile long p3Padded 6 long (48 bytes) -
p4
public volatile long p4Padded 6 long (48 bytes) -
p5
public volatile long p5Padded 6 long (48 bytes) -
p6
public volatile long p6Padded 6 long (48 bytes)
-
-
Constructor Details
-
PaddedAtomicLong
public PaddedAtomicLong()Constructors fromAtomicLong
-
PaddedAtomicLong
public PaddedAtomicLong(long initialValue)
-
-
Method Details
-
sumPaddingToPreventOptimization
public long sumPaddingToPreventOptimization()To prevent GC optimizations for cleaning unused padded references
-