Threads mit run() und statischer Variable

Status
Nicht offen für weitere Antworten.
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?

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());
            }
          }
        }
 

Noctarius

Top Contributor
Ich würde jetzt spontan sagen da fehlt Synchronisation. Immerhin zählen 2 Threads die selbe Variable mit zeitgleicher Ausführung.
 

Schandro

Top Contributor
außer das du den ersten Thread laut Aufgabenstellung starten sollst bevor du den zweiten erschaffst, dürfte dein Code richtig sein.

@Noctarius:
Die Threads sollen garnicht synchronisiert laufen^^
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben