Spec-Zone .ru
спецификации, руководства, описания, API
|
public class ThreadLocalRandom extends Random
Random
генератор, используемый Math
класс, a ThreadLocalRandom
инициализируется с внутренне сгенерированным семенем, которое не может иначе быть изменено. Когда применимый, использование ThreadLocalRandom
вместо совместно используемого Random
объекты в параллельных программах будут обычно встречаться с намного меньшим количеством издержек и конкуренции. Использование ThreadLocalRandom
является особенно соответствующим когда многократные задачи (например, каждый a ForkJoinTask
) используйте случайные числа параллельно в пулах потоков. Использования этого класса должны обычно иметь форму: ThreadLocalRandom.current().nextX(...)
(где X
Int
, Long
, и т.д.). Когда все использования имеют эту форму, никогда не возможно случайно совместно использовать a ThreadLocalRandom
через многократные потоки.
Этот класс также обеспечивает дополнительные обычно используемые ограниченные случайные методы генерации.
Модификатор и Тип | Метод и Описание |
---|---|
static ThreadLocalRandom |
current()
Возвращает текущий поток
ThreadLocalRandom . |
protected int |
next(int bits)
Генерирует следующее псевдослучайное число.
|
double |
nextDouble(double n)
Возвращает псевдослучайное, однородно распределенное
double значение между 0 (содержащий) и указанное (монопольное) значение. |
double |
nextDouble(double least, double bound)
Возвращает псевдослучайное, однородно распределенное значение между данным наименьшее количество значения (включительно) и связанный (монопольный).
|
int |
nextInt(int least, int bound)
Возвращает псевдослучайное, однородно распределенное значение между данным наименьшее количество значения (включительно) и связанный (монопольный).
|
long |
nextLong(long n)
Возвращает псевдослучайное, однородно распределенное значение между 0 (содержащий) и указанное (монопольное) значение.
|
long |
nextLong(long least, long bound)
Возвращает псевдослучайное, однородно распределенное значение между данным наименьшее количество значения (включительно) и связанный (монопольный).
|
void |
setSeed(long seed)
Броски
UnsupportedOperationException . |
nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong
public static ThreadLocalRandom current()
ThreadLocalRandom
.ThreadLocalRandom
public void setSeed(long seed)
UnsupportedOperationException
. Установка семян в этом генераторе не поддерживается.setSeed
в классе Random
seed
- начальное семяUnsupportedOperationException
- всегдаprotected int next(int bits)
Random
Общий контракт next
это, это возвращается int
значение и если параметр bits
между 1
и 32
(включительно), тогда то, что много битов младшего разряда возвращенного значения будут (приблизительно) независимо выбранными битовыми значениями, каждое из которых (приблизительно), одинаково вероятно, будет 0
или 1
. Метод next
реализуется классом Random
атомарно обновляя семя к
(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)
и возврат (int)(seed >>> (48 - bits))
.
Это - линейный congruential генератор псевдослучайного числа, как определено Д. Х. Лехмером и описало Дональдом Э. Нутом в Искусстве Программирования, Объем 3: получисловые Алгоритмы, разделите 3.2.1.public int nextInt(int least, int bound)
least
- наименьшее количество значения возвратилосьbound
- (монопольная) верхняя границаIllegalArgumentException
- если наименее больше чем или равный связанномуpublic long nextLong(long n)
n
- привязанный случайное число, которое будет возвращено. Должно быть положительным.IllegalArgumentException
- если n не положителенpublic long nextLong(long least, long bound)
least
- наименьшее количество значения возвратилосьbound
- (монопольная) верхняя границаIllegalArgumentException
- если наименее больше чем или равный связанномуpublic double nextDouble(double n)
double
значение между 0 (содержащий) и указанное (монопольное) значение.n
- привязанный случайное число, которое будет возвращено. Должно быть положительным.IllegalArgumentException
- если n не положителенpublic double nextDouble(double least, double bound)
least
- наименьшее количество значения возвратилосьbound
- (монопольная) верхняя границаIllegalArgumentException
- если наименее больше чем или равный связанному
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.