A
Alexey77
Gast
Hallo, Java-Freunde!
Ich zerbreche mir den Kopp schon mehrere Tage mit diesem wait und notify.
Was ich möchte: es gibt 3 threads. Master, KW und Counter.
Master liest TastaturEingaben ständig ab; (gemacht)
KW prüft die Tastatureingabe und wenn "3" eingegeben - hält er den Thread Counter an.
Sobald 1 oder 2 neu eingegeben wurde - lässt der KW den Counter wieder laufen.
Das is alles. Zu erledigen ist das durch wait und notify.
Die Struktur meines Programms ist folgende (schematisch und sehr vereinfacht, da gibt es viele andere sachen, die irrelevant fürs Problem sind)
So, funktioniert natürlich nicht. Also - auf wartemodus setzt er schon, aber wenn man 1 oder 2 dann eingibt, geht der Counter aus dem Schlafen nicht mehr raus.
Was mache ich falsch? (Ich weiss, alles :_) )
Danke!
Ich zerbreche mir den Kopp schon mehrere Tage mit diesem wait und notify.
Was ich möchte: es gibt 3 threads. Master, KW und Counter.
Master liest TastaturEingaben ständig ab; (gemacht)
KW prüft die Tastatureingabe und wenn "3" eingegeben - hält er den Thread Counter an.
Sobald 1 oder 2 neu eingegeben wurde - lässt der KW den Counter wieder laufen.
Das is alles. Zu erledigen ist das durch wait und notify.
Die Struktur meines Programms ist folgende (schematisch und sehr vereinfacht, da gibt es viele andere sachen, die irrelevant fürs Problem sind)
Code:
Classe masterslave
..... main.. {
Thread master - starten
Thread KW - starten
Thread Counter starten
}
Classe master extends thread
synchronized run
while true
{ tastatureingabe "1", "2" oder "3" }
Classe KW extends thread
synchronized run
while true
{ if master bekam "3" - setze boolean flag auf true
}
Classe Counter extends Thread
{
synchronized run
while true
if flag = true - currentThread() - try wait
else notifyAll();
}
So, funktioniert natürlich nicht. Also - auf wartemodus setzt er schon, aber wenn man 1 oder 2 dann eingibt, geht der Counter aus dem Schlafen nicht mehr raus.
Was mache ich falsch? (Ich weiss, alles :_) )
Danke!