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 globalRandomgenerator used by theMathclass, aThreadLocalRandomis initialized with an internally generated seed that may not otherwise be modified. When applicable, use ofThreadLocalRandomrather than sharedRandomobjects in concurrent programs will typically encounter much less overhead and contention. Use ofThreadLocalRandomis 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(...)(whereXisInt,Long, etc). When all usages are of this form, it is never possible to accidently share aThreadLocalRandomacross 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 ThreadLocalRandomcurrent()Returns the current thread'sThreadLocalRandom.protected intnext(int bits)voidsetSeed(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:
setSeedin classRandom- Throws:
UnsupportedOperationException- always
-
-