Класс ThreadLocalRandom
- java.lang.Object
-
- java.util.Random
-
- java.util.concurrent.ThreadLocalRandom
- Все реализуемые интерфейсы:
Serializable
public class ThreadLocalRandom extends Random
Генератор псевдослучайных чисел, изолированный для текущей нити. Как и глобальный генератор Random, используемый классом Math, ThreadLocalRandom инициализируется с помощью генерируемого внутри семени, которое нельзя изменить. В многопоточных программах использование ThreadLocalRandom вместо общих Random объектов обычно приводит к значительно меньшему накладным расходам и конфликтам. Использование ThreadLocalRandom особенно подходит, когда несколько задач (например, каждая из ForkJoinTask) используют случайные числа параллельно в пулах потоков.
Использование этого класса обычно имеет вид: ThreadLocalRandom.current().nextX(...) (где X это Int, Long, и т.д.). При таком использовании никогда нельзя случайно получить общий ThreadLocalRandom для нескольких потоков.
Этот класс также предоставляет дополнительные методы ограниченной генерации случайных чисел.
Экземпляры ThreadLocalRandom не являются криптографически безопасными. Вместо этого используйте SecureRandom в приложениях, чувствительных к безопасности. Кроме того, экземпляры, созданные по умолчанию, не используют криптографически случайное семя, если системная переменная java.util.secureRandomSeed не установлена в значение true.
- С тех пор:
- 1.7
- См. также:
- Сериализованная форма
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
static ThreadLocalRandom | current() | Возвращает |
DoubleStream | doubles() | Возвращает бесконечный поток псевдослучайных |
DoubleStream | doubles(double randomNumberOrigin,
double randomNumberBound) | Возвращает бесконечный поток псевдослучайных |
DoubleStream | doubles(long streamSize) | Возвращает поток, генерирующий указанное количество |
DoubleStream | doubles(long streamSize,
double randomNumberOrigin,
double randomNumberBound) | Возвращает поток, генерирующий указанное количество |
IntStream | ints() | Возвращает бесконечный поток псевдослучайных |
IntStream | ints(int randomNumberOrigin,
int randomNumberBound) | Возвращает бесконечный поток псевдослучайных |
IntStream | ints(long streamSize) | Возвращает поток, генерирующий указанное количество |
IntStream | ints(long streamSize,
int randomNumberOrigin,
int randomNumberBound) | Возвращает поток, генерирующий указанное количество |
LongStream | longs() | Возвращает бесконечный поток псевдослучайных |
LongStream | longs(long streamSize) | Возвращает поток, генерирующий указанное количество |
LongStream | longs(long randomNumberOrigin,
long randomNumberBound) | Возвращает бесконечный поток псевдослучайных |
LongStream | longs(long streamSize,
long randomNumberOrigin,
long randomNumberBound) | Возвращает поток, генерирующий указанное количество |
protected int | next(int bits) | Генерирует псевдослучайное число с указанным количеством младших битов. |
boolean | nextBoolean() | Возвращает псевдослучайное |
double | nextDouble() | Возвращает псевдослучайное |
double | nextDouble(double bound) | Возвращает псевдослучайное |
double | nextDouble(double origin,
double bound) | Возвращает псевдослучайное |
float | nextFloat() | Возвращает псевдослучайное |
int | nextInt() | Возвращает псевдослучайное |
int | nextInt(int bound) | Возвращает псевдослучайное |
int | nextInt(int origin,
int bound) | Возвращает псевдослучайное |
long | nextLong() | Возвращает псевдослучайное |
long | nextLong(long bound) | Возвращает псевдослучайное |
long | nextLong(long origin,
long bound) | Возвращает псевдослучайное |
void | setSeed(long seed) | Выбрасывает |
Методы, объявленные в классе java.util.Random
nextBytes, nextGaussian Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы
current
public static ThreadLocalRandom current()
Возвращает текущую нить ThreadLocalRandom.
- Возвращает:
- текущую нить
ThreadLocalRandom.
setSeed
public void setSeed(long seed)
Выбрасывает UnsupportedOperationException. Установка семян в этом генераторе не поддерживается.
- Переопределяет:
-
setSeedв классеRandom - Параметры:
-
seed- начальное семя - Выбрасывает:
-
UnsupportedOperationException- всегда
next
protected int next(int bits)
Генерирует псевдослучайное число с указанным количеством младших битов. Поскольку у этого класса нет подклассов, этот метод нельзя вызвать или переопределить.
- Переопределяет:
-
nextв классеRandom - Параметры:
-
bits- случайные биты - Возвращает:
- следующее псевдослучайное значение из последовательности этого генератора псевдослучайных чисел
nextInt
public int nextInt()
Возвращает псевдослучайное int значение.
nextInt
public int nextInt(int bound)
Возвращает псевдослучайное int значение между нулём (включительно) и заданным пределом (исключительно).
- Переопределяет:
-
nextIntв классеRandom - Параметры:
-
bound- верхний предел (исключительно). Должен быть положительным. - Возвращает:
- псевдослучайное
intзначение между нулём (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиboundне является положительным
nextInt
public int nextInt(int origin,
int bound) Возвращает псевдослучайное int значение между указанным начальным значением (включительно) и заданным пределом (исключительно).
- Параметры:
-
origin- наименьшее возвращаемое значение -
bound- верхний предел (исключительно) - Возвращает:
- псевдослучайное
intзначение между начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиoriginбольше или равноbound
nextLong
public long nextLong()
Возвращает псевдослучайное long значение.
nextLong
public long nextLong(long bound)
Возвращает псевдослучайное long значение между нулём (включительно) и заданным пределом (исключительно).
- Параметры:
-
bound- верхний предел (исключительно). Должен быть положительным. - Возвращает:
- псевдослучайное
longзначение между нулём (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиboundне является положительным
nextLong
public long nextLong(long origin,
long bound) Возвращает псевдослучайное long значение между указанным начальным значением (включительно) и заданным пределом (исключительно).
- Параметры:
-
origin- наименьшее возвращаемое значение -
bound- верхний предел (исключительно) - Возвращает:
- псевдослучайное
longзначение между начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиoriginбольше или равноbound
nextDouble
public double nextDouble()
Возвращает псевдослучайное double значение между нулём (включительно) и единицей (исключительно).
- Переопределяет:
-
nextDoubleв классеRandom - Возвращает:
- псевдослучайное
doubleзначение между нулём (включительно) и единицей (исключительно) - См. также:
Math.random()
nextDouble
public double nextDouble(double bound)
Возвращает псевдослучайное double значение между 0.0 (включительно) и заданным пределом (исключительно).
- Параметры:
-
bound- верхний предел (исключительно). Должен быть положительным. - Возвращает:
- псевдослучайное
doubleзначение между нулём (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиboundне является положительным
nextDouble
public double nextDouble(double origin,
double bound) Возвращает псевдослучайное double значение между указанным начальным значением (включительно) и пределом (исключительно).
- Параметры:
-
origin- наименьшее возвращаемое значение -
bound- верхний предел (исключительно) - Возвращает:
- псевдослучайное
doubleзначение между начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиoriginбольше или равноbound
nextBoolean
public boolean nextBoolean()
Возвращает псевдослучайное boolean значение.
- Переопределяет:
-
nextBooleanв классеRandom - Возвращает:
- псевдослучайное
booleanзначение
nextFloat
public float nextFloat()
Возвращает псевдослучайное float значение между нулём (включительно) и единицей (исключительно).
- Переопределяет:
-
nextFloatв классеRandom - Возвращает:
- псевдослучайное
floatзначение между нулём (включительно) и единицей (исключительно)
ints
public IntStream ints(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайных int значений.
- Переопределяет:
-
intsв классеRandom - Параметры:
-
streamSize- количество генерируемых значений - Возвращает:
- поток псевдослучайных
intзначений - Выбрасывает:
-
IllegalArgumentException- еслиstreamSizeменьше нуля - С:
- 1.8
ints
public IntStream ints()
Возвращает эффективно неограниченный поток псевдослучайных int значений.
- Переопределяет:
-
intsв классеRandom - Примечание к реализации:
- Этот метод реализован, чтобы быть эквивалентным
ints(Long.MAX_VALUE). - Возвращает:
- поток псевдослучайных
intзначений - С:
- 1.8
ints
public IntStream ints(long streamSize,
int randomNumberOrigin,
int randomNumberBound) Возвращает поток, генерирующий указанное streamSize количество псевдослучайных int значений, каждое из которых соответствует заданному начальному значению (включительно) и пределу (исключительно).
- Переопределяет:
-
intsв классеRandom - Параметры:
-
streamSize- количество генерируемых значений -
randomNumberOrigin- начальное значение (включительно) каждого случайного значения -
randomNumberBound- предел (исключительно) каждого случайного значения - Возвращает:
- поток псевдослучайных
intзначений, каждое с заданным начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиstreamSizeменьше нуля илиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
ints
public IntStream ints(int randomNumberOrigin,
int randomNumberBound) Возвращает эффективно неограниченный поток псевдослучайных
int значений, каждое из которых соответствует заданному начальному значению (включительно) и пределу (исключительно).
- Переопределяет:
-
intsв классеRandom - Примечание к реализации:
- Этот метод реализован, чтобы быть эквивалентным
ints(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- начальное значение (включительно) каждого случайного значения -
randomNumberBound- предел (исключительно) каждого случайного значения - Возвращает:
- поток псевдослучайных
intзначений, каждое с заданным начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
longs
public LongStream longs(long streamSize)
Возвращает поток, генерирующий указанное streamSize количество псевдослучайных long значений.
- Переопределяет:
-
longsв классеRandom - Параметры:
-
streamSize- количество генерируемых значений - Возвращает:
- поток псевдослучайных
longзначений - Выбрасывает:
-
IllegalArgumentException- еслиstreamSizeменьше нуля - С:
- 1.8
longs
public LongStream longs()
Возвращает эффективно неограниченный поток псевдослучайных long значений.
- Переопределяет:
-
longsв классеRandom - Примечание к реализации:
- Этот метод реализован, чтобы быть эквивалентным
longs(Long.MAX_VALUE). - Возвращает:
- поток псевдослучайных
longзначений - С:
- 1.8
longs
public LongStream longs(long streamSize,
long randomNumberOrigin,
long randomNumberBound) Возвращает поток, генерирующий указанное streamSize количество псевдослучайных long, каждое из которых соответствует заданному начальному значению (включительно) и пределу (исключительно).
- Переопределяет:
-
longsв классеRandom - Параметры:
-
streamSize- количество генерируемых значений -
randomNumberOrigin- начальное значение (включительно) каждого случайного значения -
randomNumberBound- предел (исключительно) каждого случайного значения - Возвращает:
- поток псевдослучайных
longзначений, каждое с заданным начальным значением (включительно) и пределом (исключительно) - Выбрасывает:
-
IllegalArgumentException- еслиstreamSizeменьше нуля илиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
longs
public LongStream longs(long randomNumberOrigin,
long randomNumberBound) Возвращает эффективно неограниченный поток псевдослучайных
long значений, каждое из которых соответствует заданному начальному (включительно) и граничному (исключительно) значениям.
- Переопределяет:
-
longsв классеRandom - Примечание реализации:
- Этот метод реализован для эквивалентности
longs(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- начальное (включительно) значение каждого случайного значения -
randomNumberBound- граничное (исключительно) значение каждого случайного значения - Возвращает:
- поток псевдослучайных
longзначений, каждое с заданным начальным (включительно) и граничным (исключительно) значениями - Исключение:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
doubles
public DoubleStream doubles(long streamSize)
Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений, каждое из которых находится между нулём (включительно) и единицей (исключительно).
- Переопределяет:
-
doublesв классеRandom - Параметры:
-
streamSize- количество значений для генерации - Возвращает:
- поток
doubleзначений - Исключение:
-
IllegalArgumentException- еслиstreamSizeменьше нуля - С:
- 1.8
doubles
public DoubleStream doubles()
Возвращает эффективно неограниченный поток псевдослучайных
double значений, каждое из которых находится между нулём (включительно) и единицей (исключительно).
- Переопределяет:
-
doublesв классеRandom - Примечание реализации:
- Этот метод реализован для эквивалентности
doubles(Long.MAX_VALUE). - Возвращает:
- поток псевдослучайных
doubleзначений - С:
- 1.8
doubles
public DoubleStream doubles(long streamSize,
double randomNumberOrigin,
double randomNumberBound) Возвращает поток, генерирующий заданное количество streamSize псевдослучайных double значений, каждое из которых соответствует заданному начальному (включительно) и граничному (исключительно) значениям.
- Переопределяет:
-
doublesв классеRandom - Параметры:
-
streamSize- количество значений для генерации -
randomNumberOrigin- начальное (включительно) значение каждого случайного значения -
randomNumberBound- граничное (исключительно) значение каждого случайного значения - Возвращает:
- поток псевдослучайных
doubleзначений, каждое с заданным начальным (включительно) и граничным (исключительно) значениями - Исключение:
-
IllegalArgumentException- еслиstreamSizeменьше нуля, илиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
doubles
public DoubleStream doubles(double randomNumberOrigin,
double randomNumberBound) Возвращает эффективно неограниченный поток псевдослучайных
double значений, каждое из которых соответствует заданному начальному (включительно) и граничному (исключительно) значениям.
- Переопределяет:
-
doublesв классеRandom - Примечание реализации:
- Этот метод реализован для эквивалентности
doubles(Long.MAX_VALUE, randomNumberOrigin, randomNumberBound). - Параметры:
-
randomNumberOrigin- начальное (включительно) значение каждого случайного значения -
randomNumberBound- граничное (исключительно) значение каждого случайного значения - Возвращает:
- поток псевдослучайных
doubleзначений, каждое с заданным начальным (включительно) и граничным (исключительно) значениями - Исключение:
-
IllegalArgumentException- еслиrandomNumberOriginбольше или равноrandomNumberBound - С:
- 1.8
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ThreadLocalRandom.html