Hallöle,
folgender Code gibt mir Rätsel auf:
[lang code=java]
System.out.println("Haupt-Thread Anfang");
(new Thread()
{
public void run()
{
try
{
System.out.println("Anfang Extra Thread");
Thread.sleep(12000);
System.out.println("Ende Extra Thread");
}
catch (Exception e)
{
System.out.println("Exception in Extra Thread");
}
}
}).run();
System.out.println("Haupt-Thread Ende");
[/code]
sollte (falls keine Exception auftritt), entweder zur Ausgabe von
Haupt-Thread Anfang
Anfang Extra Thread
Haupt-Thread Ende
Ende Extra Thread
oder zu
Haupt-Thread Anfang
Haupt-Thread Ende
Anfang Extra Thread
Ende Extra Thread
führen - die Reihenfolge von "Ende" und "Anfang Extra Thread" sollte zufällig sein, je nachdem, welcher Thread zuerst weitergeführt wird.
Was ich nicht verstehe, ist, daß ich stattdessen
Anfang
Anfang Extra Thread
Ende Extra Thread
Ende
bekomme.
Der Haupt-Thread wartet also auf das Beenden des Extra-Threads.
Ich will doch aber, daß der Extra-Thread vollkommen unabhängig vom Haupt-Thread läuft.
Was mache ich falsch?
cu,
Robert