Robert: Thread läuft nicht unabhängig ...

Beitrag lesen

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