Package org.jboss.netty.util.internal
Class ThreadLocalRandom
- java.lang.Object
-
- java.util.Random
-
- org.jboss.netty.util.internal.ThreadLocalRandom
-
- All Implemented Interfaces:
Serializable
public final class ThreadLocalRandom extends Random
A random number generator isolated to the current thread. Like the globalRandom
generator used by theMath
class, aThreadLocalRandom
is initialized with an internally generated seed that may not otherwise be modified. When applicable, use ofThreadLocalRandom
rather than sharedRandom
objects in concurrent programs will typically encounter much less overhead and contention. Use ofThreadLocalRandom
is particularly appropriate when multiple tasks use random numbers in parallel in thread pools.Usages of this class should typically be of the form:
ThreadLocalRandom.current().nextX(...)
(whereX
isInt
,Long
, etc). When all usages are of this form, it is never possible to accidently share aThreadLocalRandom
across multiple threads.This class also provides additional commonly used bounded random generation methods.
- Since:
- 1.7
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ThreadLocalRandom()
-
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)
void
setSeed(long seed)
ThrowsUnsupportedOperationException
.
-
-
-
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 classRandom
- Throws:
UnsupportedOperationException
- always
-
-