Package org.multiverse.utils
Class ThreadLocalRandom
- java.lang.Object
-
- java.util.Random
-
- org.multiverse.utils.ThreadLocalRandom
-
- All Implemented Interfaces:
java.io.Serializable
public class ThreadLocalRandom extends java.util.Random
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private static long
addend
(package private) boolean
initialized
Initialization flag to permit the first and only allowed call to setSeed (inside Random constructor) to succeed.private static java.lang.ThreadLocal<ThreadLocalRandom>
localRandom
The actual ThreadLocalprivate static long
mask
private static long
multiplier
private long
pad0
private long
pad1
private long
pad2
private long
pad3
private long
pad4
private long
pad5
private long
pad6
private long
pad7
private long
rnd
The random seed.private static long
serialVersionUID
-
Constructor Summary
Constructors Constructor Description ThreadLocalRandom()
Constructor called only by localRandom.initialValue.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ThreadLocalRandom
current()
Returns the current thread'sThreadLocalRandom
.protected int
next(int bits)
double
nextDouble(double n)
Returns a pseudorandom, uniformly distributeddouble
value between 0 (inclusive) and the specified value (exclusive).double
nextDouble(double least, double bound)
Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).int
nextInt(int least, int bound)
Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).long
nextLong(long n)
Returns a pseudorandom, uniformly distributed value between 0 (inclusive) and the specified value (exclusive).long
nextLong(long least, long bound)
Returns a pseudorandom, uniformly distributed value between the given least value (inclusive) and bound (exclusive).void
setSeed(long seed)
ThrowsUnsupportedOperationException
.
-
-
-
Field Detail
-
multiplier
private static final long multiplier
- See Also:
- Constant Field Values
-
addend
private static final long addend
- See Also:
- Constant Field Values
-
mask
private static final long mask
- See Also:
- Constant Field Values
-
rnd
private long rnd
The random seed. We can't use super.seed.
-
initialized
boolean initialized
Initialization flag to permit the first and only allowed call to setSeed (inside Random constructor) to succeed. 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 pad0
-
pad1
private long pad1
-
pad2
private long pad2
-
pad3
private long pad3
-
pad4
private long pad4
-
pad5
private long pad5
-
pad6
private long pad6
-
pad7
private long pad7
-
localRandom
private static final java.lang.ThreadLocal<ThreadLocalRandom> localRandom
The actual ThreadLocal
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
-
Method Detail
-
current
public static ThreadLocalRandom current()
Returns the current thread'sThreadLocalRandom
.- Returns:
- the current thread's
ThreadLocalRandom
-
setSeed
public void setSeed(long seed)
ThrowsUnsupportedOperationException
. Setting seeds in this generator is not supported.- Overrides:
setSeed
in classjava.util.Random
- Throws:
java.lang.UnsupportedOperationException
- always
-
next
protected int next(int bits)
- Overrides:
next
in classjava.util.Random
-
nextInt
public int nextInt(int least, int bound)
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:
java.lang.IllegalArgumentException
- if least greater than or equal to bound
-
nextLong
public long nextLong(long n)
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:
java.lang.IllegalArgumentException
- if n is not positive
-
nextLong
public long nextLong(long least, long bound)
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:
java.lang.IllegalArgumentException
- if least greater than or equal to bound
-
nextDouble
public double nextDouble(double n)
Returns a pseudorandom, uniformly distributeddouble
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:
java.lang.IllegalArgumentException
- if n is not positive
-
nextDouble
public double nextDouble(double least, double bound)
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:
java.lang.IllegalArgumentException
- if least greater than or equal to bound
-
-