मैं जावा 7 के ThreadLocalRandom को आजमा रहा हूं और देखता हूं कि यह कई धागे में बिल्कुल यादृच्छिक संख्याएं उत्पन्न कर रहा है।जावा 7: थ्रेडलोकलरैंडम एक ही यादृच्छिक संख्याएं उत्पन्न करता है
यहाँ मेरी कोड, जिसमें मैं 5 धागे और से 5 यादृच्छिक संख्या प्रत्येक थ्रेड प्रिंट बनाने है:
//5 threads
for(int i = 0; i < 5 ; i++) {
final Thread thread = new Thread() {
@Override
public void run() {
System.out.print(Thread.currentThread().getName()+":");
//each thread prints 5 random numbers
for(int j = 0 ; j < 5; j++) {
final int random = ThreadLocalRandom.current().nextInt(1,100);
System.out.print(random + ",");
}
System.out.println();
}
};
thread.start();
thread.join();
}
आउटपुट:
Thread-0:1,93,45,75,29,
Thread-1:1,93,45,75,29,
Thread-2:1,93,45,75,29,
Thread-3:1,93,45,75,29,
Thread-4:1,93,45,75,29,
मैं प्रत्येक के लिए एक ही यादृच्छिक संख्या क्यों मिल रही है धागा और कार्यक्रम के हर निष्पादन के लिए?
+1 निफ्टी चीजें बग – Matt
बग को जेडीके 7 के अपडेट 2 में हल किया गया है। यहां डाउनलोड करें: http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u2-download-1377129.html – jopasserat