ホームページ >Java >&#&チュートリアル >ThreadLocalRandom 関数を使用して Java で乱数を生成する方法

ThreadLocalRandom 関数を使用して Java で乱数を生成する方法

WBOY
WBOYオリジナル
2023-06-26 15:03:271752ブラウズ

Java で一般的に使用される乱数生成メソッドには、Random クラスと Math.random() メソッドが含まれますが、マルチスレッド プログラムの場合、スレッド セーフは非常に重要です。したがって、マルチスレッド環境では、乱数生成に ThreadLocalRandom クラスを使用することがより適切な選択です。

ThreadLocalRandom は Java 7 で導入された新機能で、スレッド ローカライズされた乱数ジェネレーターを提供します。マルチスレッド環境では、各スレッドが独自の ThreadLocalRandom インスタンスを作成し、スレッドの競合の問題を回避し、プログラムの同時実行パフォーマンスを向上させます。

ThreadLocalRandom を使用して乱数を生成するのは非常に簡単で、ThreadLocalRandom が提供する nextInt メソッドを呼び出すだけです。このメソッドには 2 つのオーバーロード バージョンがあります:

  1. nextInt()
    このメソッドは、int 型のランダムな整数を返します。この整数の範囲は、負および正の int 値です。
  2. nextInt(intbound)
    このメソッドは、ランダムな int 型の整数を返します。この整数の範囲は 0 からbound-1 です。

さらに、ThreadLocalRandom は、他のタイプの乱数生成メソッド (nextLong、nextFloat、nextBoolean など) を提供します。これらのメソッドの使用方法は nextInt と似ています。

以下は、ThreadLocalRandom を使用して乱数を生成するサンプル コードです。

import java.util.concurrent.ThreadLocalRandom;

public class RandomDemo {
    public static void main(String[] args) {
        // 生成一个范围在0-99的随机整数
        int randomNum = ThreadLocalRandom.current().nextInt(100);
        System.out.println("随机数是:" + randomNum);
    }
}

出力では、プログラムを実行するたびに乱数が異なることがわかります。これは、ThreadLocalRandom の乱数生成器のスレッドの安全性と信頼性も裏付けています。

つまり、Java マルチスレッド環境では、ThreadLocalRandom を使用する方が、Random クラスを使用するよりも安全で効率的で便利です。したがって、マルチスレッド プログラムを作成する場合は、ThreadLocalRandom を使用して乱数を生成することを優先する必要があります。

以上がThreadLocalRandom 関数を使用して Java で乱数を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。