Thread wait() auf Nicht-Thread Klasse

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo Zusammen

Ich habe nun schon einiges über Threads gelesen und ausprobiert ,habe jedoch noch folgendes Problem.

Ich implementierte ein Thread namens MonitorThread.
In diesem werden Zeiten ausgerechnet, sobald eine neue Zeit ausgerechnet wurde, soll diese Grafisch Dargestellt werden, was in einer neuen Klasse geschieht.
Diese Klasse ist jedoch kein Thread.

wie genau kann ich nun den MonitorThread dazu bringen zu warten bis die Klasse paintChart, die Zahlen Grafisch Dargestellt hat und die Methode zu ende ist?

Hier noch ein wenig Code (vereinfacht Dargestellt):

Code:
public class MonitorThread extends Thread {

PaintTimes paint = new PaintTimes();


  public void run {
  while(!isInterrupted()) {    //Wird in einer Endlosschleife ausgeführt bis auf den Stopp button gedrückt wird

      ausrechnen();     //hier werden die Zeiten ausgerechnet
      
      paint.showTime(time);       // hier wird die Methode showTime() der Klasse PaintTimes gestartet
                                              // der MonitorThread soll nun warten bis diese Methode fertig durchlaufen wurde

            
 }
 }

  public void ausrechnen() {
     //hier wird die Rechnung ausgeführt 
     time = resultat;
 }
}

Code:
public class PaintTimes {

    showTimes(int time) {
           System.out.println(time);     //Time wird in einem GUI dargestellt, spielt jedoch für meine Frage keine Roll
   }
}


Ich hoffe ich konnte mein Problem Verständlich aufzeigen, und würde mich sehr über Tipps, Hinweise und Lösungswege freuen.


danke
 
das warten bezieht sich nicht auf ein Objekt oder eine Klasse,
sondern auf den aktuellen Thread, der die Kontrolle über die Ausführung hat,
(z.B. der main-Thread oder der EventDispatcher-Thread bei ActionListenern)

Thread.sleep() oder andere Thread-bezogene Operationen kannst du also auch in anderen Klassen aufrufen,
weiß aber nicht ob das überhaupt in deinen Fall sinnvoll ist,

wenn ein Thread eine Operation einer anderen Klasse aufruft,
dann muss er eh warten bis die Operation zu Ende ist,
so ist das doch ganz normal in Java/ überall?
 
hm dachte ich eben auch, aber während die Methode ausgeführt wird läuft der Thread normal weiter und dadurch bekomme ich keine korrekten daten.
 
dann läuft die Operation in einem anderen Thread..

Threads können aufeinander warten wenn sie sich kennen,
oder der eine Thread begibt sich in eine Schleife mit sleep udn schaut alle 100 ms nach
oder oder oder
 
Ich habe ein ganz ähnliches Problem. Ich lasse auch einen Thread mit einer
Code:
while (true) {
  [...]
  Thread.sleep(250);
}
Schleife laufen. Innerhalb dieser wird eine Methode einer anderen Klasse aufgerufen. WAS passiert, wenn der Thread sie Methode wieder aufrufen will, während diese noch läuft?

Ich bekomme Fehler, von denen ich auch noch nicht weiß wie ich sie abfangen soll...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben