Class ThreadLocalRandom
java.lang.Object
java.util.Random
io.netty.util.internal.ThreadLocalRandom
- All Implemented Interfaces:
Serializable
Deprecated.
A random number generator isolated to the current thread. Like the
global
) use random numbers
in parallel in thread pools.
Random generator used by the Math class, a ThreadLocalRandom is initialized
with an internally generated seed that may not otherwise be
modified. When applicable, use of ThreadLocalRandom rather
than shared Random objects in concurrent programs will
typically encounter much less overhead and contention. Use of
ThreadLocalRandom is particularly appropriate when multiple
tasks (for example, each a
invalid reference
io.netty.util.internal.chmv8.ForkJoinTask
Usages of this class should typically be of the form:
ThreadLocalRandom.current().nextX(...) (where
X is Int, Long, etc).
When all usages are of this form, it is never possible to
accidentally share a ThreadLocalRandom across multiple threads.
This class also provides additional commonly used bounded random generation methods. //since 1.7 //author Doug Lea
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longDeprecated.(package private) booleanDeprecated.Initialization flag to permit calls to setSeed to succeed only while executing the Random constructor.private static longDeprecated.private static final InternalLoggerDeprecated.private static final longDeprecated.private static final longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.private longDeprecated.The random seed.private static longDeprecated.private static final longDeprecated.private static final ThreadDeprecated.private static final BlockingQueue<Long> Deprecated.private static final AtomicLongDeprecated.private static final longDeprecated. -
Constructor Summary
ConstructorsConstructorDescriptionDeprecated.Constructor called only by localRandom.initialValue. -
Method Summary
Modifier and TypeMethodDescriptionstatic ThreadLocalRandomcurrent()Deprecated.Returns the current thread'sThreadLocalRandom.static longDeprecated.private static longmix64(long z) Deprecated.private static longnewSeed()Deprecated.protected intnext(int bits) Deprecated.doublenextDouble(double n) Deprecated.Returns a pseudorandom, uniformly distributeddoublevalue between 0 (inclusive) and the specified value (exclusive).doublenextDouble(double least, double bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).intnextInt(int least, int bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).longnextLong(long n) Deprecated.Returns a pseudorandom, uniformly distributed value between 0 (inclusive) and the specified value (exclusive).longnextLong(long least, long bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).static voidsetInitialSeedUniquifier(long initialSeedUniquifier) Deprecated.voidsetSeed(long seed) Deprecated.ThrowsUnsupportedOperationException.
-
Field Details
-
logger
Deprecated. -
seedUniquifier
Deprecated. -
initialSeedUniquifier
private static volatile long initialSeedUniquifierDeprecated. -
seedGeneratorThread
Deprecated. -
seedQueue
Deprecated. -
seedGeneratorStartTime
private static final long seedGeneratorStartTimeDeprecated. -
seedGeneratorEndTime
private static volatile long seedGeneratorEndTimeDeprecated. -
multiplier
private static final long multiplierDeprecated.- See Also:
-
addend
private static final long addendDeprecated.- See Also:
-
mask
private static final long maskDeprecated.- See Also:
-
rnd
private long rndDeprecated.The random seed. We can't use super.seed. -
initialized
boolean initializedDeprecated.Initialization flag to permit calls to setSeed to succeed only while executing the Random constructor. We can't allow others since it would cause setting seed in one part of a program to unintentionally impact other usages by the thread. -
pad0
private long pad0Deprecated. -
pad1
private long pad1Deprecated. -
pad2
private long pad2Deprecated. -
pad3
private long pad3Deprecated. -
pad4
private long pad4Deprecated. -
pad5
private long pad5Deprecated. -
pad6
private long pad6Deprecated. -
pad7
private long pad7Deprecated. -
serialVersionUID
private static final long serialVersionUIDDeprecated.- See Also:
-
-
Constructor Details
-
ThreadLocalRandom
ThreadLocalRandom()Deprecated.Constructor called only by localRandom.initialValue.
-
-
Method Details
-
setInitialSeedUniquifier
public static void setInitialSeedUniquifier(long initialSeedUniquifier) Deprecated. -
getInitialSeedUniquifier
public static long getInitialSeedUniquifier()Deprecated. -
newSeed
private static long newSeed()Deprecated. -
mix64
private static long mix64(long z) Deprecated. -
current
Deprecated.Returns the current thread'sThreadLocalRandom.- Returns:
- the current thread's
ThreadLocalRandom
-
setSeed
public void setSeed(long seed) Deprecated.ThrowsUnsupportedOperationException. Setting seeds in this generator is not supported.- Overrides:
setSeedin classRandom- Throws:
UnsupportedOperationException- always
-
next
-
nextInt
public int nextInt(int least, int bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).- Parameters:
least- the least value returnedbound- the upper bound (exclusive)- Returns:
- the next value
- Throws:
IllegalArgumentException- if least greater than or equal to bound
-
nextLong
public long nextLong(long n) Deprecated.Returns a pseudorandom, uniformly distributed value between 0 (inclusive) and the specified value (exclusive).- Parameters:
n- the bound on the random number to be returned. Must be positive.- Returns:
- the next value
- Throws:
IllegalArgumentException- if n is not positive
-
nextLong
public long nextLong(long least, long bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).- Parameters:
least- the least value returnedbound- the upper bound (exclusive)- Returns:
- the next value
- Throws:
IllegalArgumentException- if least greater than or equal to bound
-
nextDouble
public double nextDouble(double n) Deprecated.Returns a pseudorandom, uniformly distributeddoublevalue between 0 (inclusive) and the specified value (exclusive).- Parameters:
n- the bound on the random number to be returned. Must be positive.- Returns:
- the next value
- Throws:
IllegalArgumentException- if n is not positive
-
nextDouble
public double nextDouble(double least, double bound) Deprecated.Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).- Parameters:
least- the least value returnedbound- the upper bound (exclusive)- Returns:
- the next value
- Throws:
IllegalArgumentException- if least greater than or equal to bound
-