hi und zwar hab ich folgende aufgabe:
Schreiben Sie eine Klasse, die sich von Thread ableitet und implementieren Sie die Methode run(). Zählen Sie in der Run-Methode eine statische Variable (int) in einer Schleife hoch und geben Sie sie aus.
a) Erzeugen Sie in der main-Methode eine Instanz der Klasse und starten Sie den Thread
b) Erzeugen Sie eine zweite Instanz der Klasse und starten Sie diese sofort nach der ersten.
c) Wenn Sie die Ausgabe mehrmals starten, ist das Zählen nicht immer ganz sauber, wie kann das passieren?
d) Verändern Sie die Wahrscheinlichkeit der Unglücke, indem Sie zwischen dem Hochzählen und der Ausgabe zufällig den Thread zwischen 0 und 1 Sekunde Schlafen schicken. Benennen Sie die Threads mit setName() und geben Sie in der run-Methode den Namen mit aus.
Meine frage dazu, habe ich das richtig gemacht?könnte das jemand überprüfen, bin mir nicht ganz sicher?
Schreiben Sie eine Klasse, die sich von Thread ableitet und implementieren Sie die Methode run(). Zählen Sie in der Run-Methode eine statische Variable (int) in einer Schleife hoch und geben Sie sie aus.
a) Erzeugen Sie in der main-Methode eine Instanz der Klasse und starten Sie den Thread
b) Erzeugen Sie eine zweite Instanz der Klasse und starten Sie diese sofort nach der ersten.
c) Wenn Sie die Ausgabe mehrmals starten, ist das Zählen nicht immer ganz sauber, wie kann das passieren?
d) Verändern Sie die Wahrscheinlichkeit der Unglücke, indem Sie zwischen dem Hochzählen und der Ausgabe zufällig den Thread zwischen 0 und 1 Sekunde Schlafen schicken. Benennen Sie die Threads mit setName() und geben Sie in der run-Methode den Namen mit aus.
Meine frage dazu, habe ich das richtig gemacht?könnte das jemand überprüfen, bin mir nicht ganz sicher?
Java:
public class LALA extends Thread {
static int zahl = 1
;
public static void main(String[] args)
{
Thread t1 = new LALA();
t1.setName(" bin der Erste");
Thread t2 = new LALA();
t2.setName(" bin der Zweite");
t1.start();
t2.start();
}
public void run(){
for(;zahl < 100; ++zahl) {
try {
sleep((int)(Math.random()*1000));
}
catch(InterruptedException e) {
}
System.out.println(zahl+ getName());
}
}
}