クラスの 1 つのインスタンスを複数のスレッド間で共有することは有効ですか?特に、複数のスレッドからRandom
呼び出すことは有効ですか?nextInt(int)
ベストアンサー1
複数のスレッドで使用される場合でも乱数を生成するという意味で、スレッドセーフです。
Sun/Oracle JVM 実装では、スレッド間の一貫性を向上させるために、同期と AtomicLong をシードとして使用します。ただし、ドキュメントでは、すべてのプラットフォームで保証されているようには見えません。
nextInt()
特に、呼び出される順序を決定できないため、このような保証を要求するプログラムを作成することはないでしょう。