org.jsr166

## Class ThreadLocalRandom8

- java.lang.Object
- - java.util.Random
  - - org.jsr166.ThreadLocalRandom8

All Implemented Interfaces:
  Serializable

    public class ThreadLocalRandom8
    extends Random

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:
  Serialized Form

### Method Summary

Methods
`static ThreadLocalRandom8` `current()` Returns the current thread's `ThreadLocalRandom`.
`protected int` `next(int bits)`
`double` `nextDouble(double n)` Returns a pseudorandom, uniformly distributed `double` 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)` Throws `UnsupportedOperationException`.

### Methods inherited from class java.util.Random

`nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### current

    public static ThreadLocalRandom8 current()

Returns the current thread's `ThreadLocalRandom`.

Returns:
  the current thread's `ThreadLocalRandom`

#### setSeed

    public void setSeed(long seed)

Throws `UnsupportedOperationException`. Setting seeds in this generator is not supported.

Overrides:
  `setSeed` in class `Random`
Throws:
  `UnsupportedOperationException` - always

#### next

    protected int next(int bits)

Overrides:
  `next` in class `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 returned
  `bound` - the upper bound (exclusive)
Returns:
  the next value
Throws:
  `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:
  `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 returned
  `bound` - the upper bound (exclusive)
Returns:
  the next value
Throws:
  `IllegalArgumentException` - if least greater than or equal to bound

#### nextDouble

    public double nextDouble(double n)

Returns a pseudorandom, uniformly distributed `double` 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

#### 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 returned
  `bound` - the upper bound (exclusive)
Returns:
  the next value
Throws:
  `IllegalArgumentException` - if least greater than or equal to bound

2015 Copyright © Apache Software Foundation

Follow @ApacheIgnite

Ignite Fabric | : ver. 1.0.0
Release Date | : March 31 2015