Hi
Ich hab gerade ein Problem mit Thread, und zwar wenn ich die Methode run() aufrufe, dann ist der ganze nachfolge Code nicht mehr erreichbar.
Keine Ahnung wieso, aber ich hatte zuvor nie ein Problem damit - ist erst jetzt aufgefallen. Ich habe hier ein kelines Beispiel geschrieben um das Problem zu verdeutlichen, schaut mal einer pls an
Dann starte ich die Klasse
Und jetzt Hauptfrage:
Wie komme ich bis Zeile ohne den Thread zu beenden?
Der hängt wahrscheinlich in der
Schleife drin, sodass er nicht mehr weiter kommt ... Aber sind threads nicht dafür da das die Parallel ablaufen?
Die Klasse Thread an der Stelle von Runnable kann ich nicht verwenden, da die Klasse von Observable erben soll.
Im Original starte ich GUI mit
und dann soll es parallel mit anderen Thread ( 2-4 Stück ) parallel laufen
Übrigens wenn ich schon dabei bin - eine Sache habe ich nie verstanden - wenn ich in irgendeinem Thread schreibe
ist es dann nur für den Thread gültig in welchen ich das reingeschrieben habe oder für alle laufende Threads oder überhaupt für irgendeinen zufälligen Thread? Weil ich hatte mal richtig probleme mit einem Thread der ziemlich schnell lief obwohl der nur alle X sekunden 1 mal starten sollte - als ich dann
schrieb erst dann hat er wirklich die Zeit abgewartet. -Weiß es einer zufällig?
Ich hab gerade ein Problem mit Thread, und zwar wenn ich die Methode run() aufrufe, dann ist der ganze nachfolge Code nicht mehr erreichbar.
Keine Ahnung wieso, aber ich hatte zuvor nie ein Problem damit - ist erst jetzt aufgefallen. Ich habe hier ein kelines Beispiel geschrieben um das Problem zu verdeutlichen, schaut mal einer pls an
Java:
public class RunableClass implements Runnable
{
private Thread t;
private ArrayList < Integer > ar;
private Integer i;
private int count;
public RunableClass ( )
{
t = new Thread ( this );
ar = new ArrayList < Integer > ( );
count = 0;
}
//sinnloses run der ewig weiter geht
@Override public void run ( )
{
while ( t != null )
{
i = new Integer ( count++ );
ar.add ( i );
for ( Integer integer : ar )
{
System.out.print ( integer.toString ( ) + ", " );
}
System.out.println ( );
try
{
Thread.sleep ( 1000 ); //dazu die 2te frage
} catch ( InterruptedException e )
{ }
}
}
}
Dann starte ich die Klasse
Java:
public class RunC
{
public static void main ( String[] args )
{
RunableClass r = new RunableClass ( );
r.run ( );
System.out.println ( "nach run" );
}
}
Und jetzt Hauptfrage:
Wie komme ich bis Zeile ohne den Thread zu beenden?
Code:
System.out.println ( "nach run" );
Der hängt wahrscheinlich in der
Code:
while ( t != null )
Die Klasse Thread an der Stelle von Runnable kann ich nicht verwenden, da die Klasse von Observable erben soll.
Im Original starte ich GUI mit
Java:
SwingUtilities.invokeLater( new Runnable ( ) ... bla bla
Übrigens wenn ich schon dabei bin - eine Sache habe ich nie verstanden - wenn ich in irgendeinem Thread schreibe
Code:
Thread.sleep(xxxx);
Code:
threadName.sleep(xxxx);