モジュール java.base
パッケージ java.util.concurrent

クラスThreadLocalRandom

java.lang.Object
java.util.Random
java.util.concurrent.ThreadLocalRandom
すべての実装されたインタフェース:
Serializable, RandomGenerator

public final class ThreadLocalRandom extends Random
現在のスレッドに分離された乱数ジェネレータ(期間264)。 Mathクラスによって使用されるグローバルなRandomジェネレータと同様に、ThreadLocalRandomは、それ以外では変更できない内部的に生成されたシードで初期化されます。 該当する場合、並行プログラム内の共有されたRandomオブジェクトではなくThreadLocalRandomを使用すれば、通常、発生するオーバーヘッドや競合がはるかに少なくなります。 ThreadLocalRandomの使用は、複数のタスク(たとえば、各ForkJoinTask)がスレッド・プール内で並列に乱数を使用している場合に特に適しています。

このクラスの使用法は通常、ThreadLocalRandom.current().nextX(...) (ここで、XIntLongなど)の形式にするようにしてください。 すべての使用方法がこの形式である場合、誤って複数のスレッドでThreadLocalRandomを共有することはできません。

このクラスはまた、追加の一般的に使用される制約付きランダム生成メソッドも提供します。

ThreadLocalRandomのインスタンスにはセキュアな暗号化が施されていません。 セキュリティに依存するアプリケーションでは、かわりにSecureRandomの使用を検討してください。 また、システム・プロパティjava.util.secureRandomSeedtrueに設定しないかぎり、デフォルトで構築されるインスタンスは暗号化処理に乱数シードを使用しません。

導入されたバージョン:
1.7
関連項目: