ich muss diese Aufgabe lösen nur weiß ich nicht ganz ob ich es jetzt richtig habe.
Die dort genannten booleschen Werte habe ich dann selber gewählt, ich denke das war auch so gemeint. Somit ist x true, y false
Was ich dazu auch nicht ganz verstehe ist dieser Satz "Die Booleschen Variablen x und y müssen im dazugehörigen Thread angelegt"
Wie ist es gemeint, könnte mir jemand ein Beispiel geben?
Ist meine Lösung halbwegs korrekt ?
Meine Lösung dazu:
// Main Class
Java:
package ÜB3;publicclassMain{publicstaticvoidmain(String[] args){ThreadTest y =newThreadTest();Thread x =newThread(y);
x.start();}}
// Thread Class
Java:
package ÜB3;publicclassThreadTestimplementsRunnable{staticboolean x =true;staticboolean y =false;publicvoidrun(){A();B();C();}publicstaticvoidA(){System.out.println("A");D();}publicstaticvoidB(){System.out.println("B");E();}publicstaticvoidC(){System.out.println("C");F();}publicstaticvoidD(){System.out.println("D");}publicstaticvoidE(){System.out.println("E");G();H();}publicstaticvoidF(){System.out.println("F");}publicstaticvoidG(){if(x ==true){System.out.println("G");}}publicstaticvoidH(){if(y ==true){System.out.println("H");}}}
// Ausgabe
Java:
ADBEGCF
Was mir dabei auffällt ist, dass es gar nicht nebenläufig ausgegeben wird, sondern genau wie auf dem Bild ausgegeben wird.
Bei dir laufen auch alle Methoden in einem Thread. Du solltest jedoch jede Methode in einen eigenen Thread unterbringen. Sobald du das hast, wird dir auch klar, was mit x und y gemeint ist.
Btw: Pass doch die Ausgabe so an, dass der aktuelle Name des Threads ausgegeben wird (Thread.getCurrent().getName() ). Damit wird vielleicht das Verständnis für die Aufgabe auch besser.
Bei dir laufen auch alle Methoden in einem Thread. Du solltest jedoch jede Methode in einen eigenen Thread unterbringen. Sobald du das hast, wird dir auch klar, was mit x und y gemeint ist.
Btw: Pass doch die Ausgabe so an, dass der aktuelle Name des Threads ausgegeben wird (Thread.getCurrent().getName() ). Damit wird vielleicht das Verständnis für die Aufgabe auch besser.
Du kannst auch alles in einer Klasse lassen (so lautet ja die Aufgabenstellung?). Mittels des Runnable-Interfaces kannst du ja gezielt die eine oder andere Methode aufrufen.
Du kannst auch alles in einer Klasse lassen (so lautet ja die Aufgabenstellung?). Mittels des Runnable-Interfaces kannst du ja gezielt die eine oder andere Methode aufrufen.
Ich verstehe nicht ganz was du meinst, könntest du vllt ein kleines Beispiel machen.
BTW: Derzeitig benutzten wir die Vererbung Thread und nicht die Runnable (das ganze habe ich nur getestet.)
Ich habe das ganze jetzt mal so geschrieben.
Deine Methode: Thread.getCurrent().getName(), hat leider nicht funktioniert, deswegen habe ich es einfach selber ausgegeben und zusätzlich noch der Thread so das ich sehen kann das es von anderen Threads durchlaufen wird.
Java:
package ÜB3;publicclassMain{publicstaticvoidmain(String[] args){ThreadA a =newThreadA();Thread x =newThread(a);
x.start();ThreadB b =newThreadB();Thread x1 =newThread(b);
x1.start();ThreadC c =newThreadC();Thread x2 =newThread(c);
x2.start();}