Package org.jboss.netty.util.internal
Class ThreadLocalRandom
java.lang.Object
java.util.Random
org.jboss.netty.util.internal.ThreadLocalRandom
- All Implemented Interfaces:
Serializable
A random number generator isolated to the current thread. Like the
global
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 use random numbers in parallel in thread pools.
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
accidently share a ThreadLocalRandom across multiple threads.
This class also provides additional commonly used bounded random generation methods.
- Since:
- 1.7
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic ThreadLocalRandomcurrent()Returns the current thread'sThreadLocalRandom.protected intnext(int bits) voidsetSeed(long seed) ThrowsUnsupportedOperationException.
-
Constructor Details
-
ThreadLocalRandom
public ThreadLocalRandom()
-
-
Method Details
-
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:
setSeedin classRandom- Throws:
UnsupportedOperationException- always
-
next
protected int next(int bits)
-