Package org.apache.commons.rng.simple
Class ThreadLocalRandomSource
- java.lang.Object
-
- org.apache.commons.rng.simple.ThreadLocalRandomSource
-
public final class ThreadLocalRandomSource extends Object
This class provides a thread-localUniformRandomProvider.The
UniformRandomProvideris created once-per-thread using the default construction methodRandomSource.create().Example:
import org.apache.commons.rng.simple.RandomSource; import org.apache.commons.rng.simple.ThreadLocalRandomSource; import org.apache.commons.rng.sampling.distribution.PoissonSampler; // Access a thread-safe random number generator UniformRandomProvider rng = ThreadLocalRandomSource.current(RandomSource.SPLIT_MIX_64); // One-time Poisson sample double mean = 12.3; int counts = PoissonSampler.of(rng, mean).sample();Note if the
RandomSourcerequires additional arguments then it is not supported. The same can be achieved using:import org.apache.commons.rng.simple.RandomSource; import org.apache.commons.rng.sampling.distribution.PoissonSampler; // Provide a thread-safe random number generator with data arguments private static ThreadLocal<UniformRandomProvider> rng = new ThreadLocal<UniformRandomProvider>() { @Override protected UniformRandomProvider initialValue() { return RandomSource.TWO_CMRES_SELECT.create(null, 3, 4); } }; // One-time Poisson sample using a thread-safe random number generator double mean = 12.3; int counts = PoissonSampler.of(rng.get(), mean).sample();- Since:
- 1.3
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static UniformRandomProvidercurrent(RandomSource source)Returns the current thread's copy of the givensource.
-
-
-
Method Detail
-
current
public static UniformRandomProvider current(RandomSource source)
Returns the current thread's copy of the givensource. If there is no value for the current thread, it is first initialized to the value returned byRandomSource.create().Note if the
sourcerequires additional arguments then it is not supported.- Parameters:
source- the source- Returns:
- the current thread's value of the
source. - Throws:
IllegalArgumentException- if the source is null or the source requires arguments
-
-