Scheduler Problem

BlueJ_Noob

Mitglied
Hallo, ich habe ein Problem, ich kenne mich leider gar nicht gut mit Schedulern und Netzwerken aus und jetzt haben wir als neues thema den Scheduler und müssen morgen dazu ein Java-Programm abgeben.
Folgendes Programm:

Java:
// Klasse EIngang
class eingang implements Runnable 
    {
    private String name;
    
    public eingang (String name) {
        this.name = name;
    }
    
    public void run(){ 
        for (int i = 0; i < 1000; i++) {
            System.out.println (name + " " + i);
        }
    }
}
 
 
//Klasse actor
class actor {
    public static void main(String[] args){ 
        eingang a = new eingang ("Haupteingang");
        eingang b = new eingang ("Hintereingang");
        Thread ta = new Thread (a);
        Thread tb = new Thread (b);
        ta.start ();
        tb.start ();
    }
}

--------
Normal ist es so gedacht, dass Menschen die einen Eingang betreten gezählt werden soll, dies geschieht hier ja automatisch, da das Programm für den Haupt- und Hintereingang immer jeweils einen hoch geht bis 999 counts. Das ist ja auch gut so, aber der "scheduler" wechselt ja immer die Eingänge und fängt dann bei dem gespeicherten i Wert für den jeweiligen Eingang weiterzuzählen.
Beispiel:

Haupteingang 0
Haupteingang 1
Haupteingang 2
Hintereingang 0
Hintereingang 1
Haupteingang 3
Hintereingang 2
usw bis 999 halt,...

es soll aber ineinander übergehen,
so der wunsch, also in etwa so:

Haupteingang 0
Haupteingang 1
Haupteingang 2
Hintereingang 3
Hintereingang 4
Haupteingang 5
Hintereingang 6

-------------------
Wenn mir jemand helfen könnte wäre ich sehr dankbar, ich bin total verzweifelt und habe ka was ich machen sollte. Danke schonmal im vorraus...
 

Marco13

Top Contributor
Die beiden brauchen eine gemeinsame Zählvariable. Am einfachsten (nicht "am besten", aber am einfachsten) wohl sowas wie
Code:
class Counter
{
    private int counter;
    public synchronized void increase() { counter++; }
    public synchronized String toString() { return String.valueOf(counter); }
}
 

Neue Themen


Oben