私は、Javaでの乱数生成とマルチスレッドの概念を学んでいます。
アイデアは、特定のミリ秒で範囲 1000 の繰り返し乱数を生成しないことです (マルチスレッドの方法で 50 以下のデータがミリ秒で処理されることを考慮してください)。そのため、特定の時間に生成された乱数のリストは一意です。特定のミリ秒でいくつかの繰り返し乱数を生成することになっているので、何か考えを教えてください(また、かなりの確率があります)。
私は失敗した次のことを試しました。
Random random = new Random(System.nanoTime());
double randomNum = random.nextInt(999);
///
int min=1; int max=999;
double randomId = (int)Math.abs(math.Random()* (max - min + 1) + min);
///
Random random = new Random(System.nanoTime()); // also tried new Random();
double randomId = (int)Math.abs(random.nextDouble()* (max - min + 1) + min);
生成されているタイムスタンプを追加していると、マルチスレッド環境で、5000 以上の一意のデータに対して生成されている (2 ~ 4 回) 同じ ID (約 8 ~ 10) が表示されます。