Servus,
in einer alten Klausuraufgabe sollte man 3 Threads gleichzeitig starten und es sollten 5000 Zufallszahlen ausgegeben werden. Zum Schluss sollte 1* "Fertig" erscheinen. Mich würde jetzt interessieren ob es möglich ist, dass hinter jeder Zufallszahl noch steht welcher der 3 Threads diese bearbeitet hat.
Mein Code sieht so aus(und liefert auch das gewünschte Ergebnis):
Thread-Klasse
main-klasse
Ich hätte als Ausgabe z.B. sowas in der Art:
"Nr. 355 = 65245542541 bearbeitet von t1"
falls das möglich ist.
Vielen Dank
in einer alten Klausuraufgabe sollte man 3 Threads gleichzeitig starten und es sollten 5000 Zufallszahlen ausgegeben werden. Zum Schluss sollte 1* "Fertig" erscheinen. Mich würde jetzt interessieren ob es möglich ist, dass hinter jeder Zufallszahl noch steht welcher der 3 Threads diese bearbeitet hat.
Mein Code sieht so aus(und liefert auch das gewünschte Ergebnis):
Thread-Klasse
Java:
public class Zufall extends Thread {
private static int counter = 0;
private static int counter2 = 0;
@Override
public void run() {
zufall();
}
private static synchronized void zufall() {
for (int i = 0; i < 5000; i++) {
if (counter < 5000) {
try {
int rückgabe = 0;
SecureRandom rnd = SecureRandom.getInstance("SHA1PRNG");
rückgabe = rnd.nextInt();
System.out.println("Nr: "+i+ "= "+rückgabe);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
counter++;
}
}
if(counter2<1){
System.out.println("Fertig");
counter2++;
}
}
}
main-klasse
Java:
public class main {
public static void main(String[] args) {
Zufall t1 = new Zufall();
Zufall t2 = new Zufall();
Zufall t3 = new Zufall();
t1.start();
t2.start();
t3.start();
}
}
Ich hätte als Ausgabe z.B. sowas in der Art:
"Nr. 355 = 65245542541 bearbeitet von t1"
falls das möglich ist.
Vielen Dank