run() wird nicht ausgeführt.

  • Themenstarter Themenstarter PastoCorba
  • Beginndatum Beginndatum
P

PastoCorba

Gast
Hallo!

Ich habe eine Klasse die Thread extended und habe dazu eine schöne run()
Methode implementiert. Diese wird allerdings nicht ausgeführt oO

Ich erzeuge in meine main einen Trhead und übergeben ihm meine Klasse:

Java:
public static void main(String[] args) {
    MeineKlasse meineKlasse = new MeineKlasse();
    Thread thread = new Thread(meineKlasse);

    thread.start();
}

Java:
public class MeineKlasse extends Thread {
    public vod run() {
        System.out.println("Ich laufe!");
    }
}

Keine Ausgabe.... oO?
 
Hmm. implementiere mit deiner Klasse mal Runnable, statt von Thread zu erben.

[EDIT]

Java:
public class RunnableStart implements Runnable {

    public static void main(String[] args) {
        RunnableStart meineKlasse = new RunnableStart();
        Thread thread = new Thread(meineKlasse);

        thread.start();
    }

    @Override
    public void run() {
        System.out.println("Ich laufe!");
    }

}

Ausgabe:

Code:
Ich laufe!
[/EDIT]
 
Zuletzt bearbeitet:
Diese wird ausgeführt, aber dein anderer Thread ("main") stirbt in der zwischenzeit, kannst es ja mal mit einem sleep oder join probieren.
 
Ach na klar, sorry hatte ich nicht daran gedacht dass
der Haupt-Thread ja schon gekillt ist bevor der andere startet...

Danke 😉
 
Das sollte sich aber nur auswirken, wenn der Thread als Daemon gestartet wird. Das kann man ja auch ganz einfach ausprobieren, indem man den Thread vor dem print etwas schlafen lässt. Die Ausgabe erscheint trotzdem immer. Wird das Daemon-Flag gesetzt, hingegen nicht.
 

Zurück
Oben