Welche der folgenden Methoden ist eine korrekte Art, einen Thread in Java zu erstellen?

Erstellung von Threads in Java durch Implementierung des Runnable-Interfaces oder Erweiterung der Thread-Klasse

Java bietet zwei Hauptmethoden zur Erstellung von Threads: Durch die Implementierung des Runnable-Interfaces und durch die Erweiterung der Thread-Klasse.

Implementierung des Runnable-Interfaces

Die Implementierung des Runnable-Interfaces ist eine gängige Methode zur Erstellung eines Threads in Java. Man erstellt eine Klasse, die das Interface Runnable implementiert und definiert die run Methode. Hier ein Beispiel:

class MeinRunnable implements Runnable {
    public void run(){
        // code, der vom neuen Thread ausgeführt werden soll
    }
}

public class HauptKlasse {
    public static void main(String[] args){
        MeinRunnable meinRunnable = new MeinRunnable();
        Thread thread = new Thread(meinRunnable);
        thread.start();
    }
}

In diesem Beispiel wird die run Methode definiert, die den Code enthält, der vom neuen Thread ausgeführt werden soll. Mit Thread thread = new Thread(meinRunnable); wird ein Thread-Objekt erstellt und mit thread.start(); wird der Thread gestartet.

Erweiterung der Thread-Klasse

Eine weitere Methode zur Erstellung eines Threads in Java ist die Erweiterung der Thread-Klasse. Man erstellt eine neue Klasse, die von der Thread-Klasse erbt und überschreibt die run-Methode. Hier ist ein Beispiel:

class MeinThread extends Thread {
    public void run(){
        // Code, der vom neuen Thread ausgeführt werden soll
    }
}

public class HauptKlasse {
    public static void main(String[] args){
        MeinThread thread = new MeinThread();
        thread.start();
    }
}

In diesem Beispiel wird ein Objekt der Klasse MeinThread erstellt und mit thread.start(); wird der Thread gestartet.

Es ist wichtig zu beachten, dass das Runnable-Interface in der Regel bevorzugt wird, weil es eine größere Flexibilität bietet. Durch das Implementieren des Runnable-Interfaces behält die Klasse die Möglichkeit, von einer anderen Klasse zu erben, während bei der Erweiterung der Thread-Klasse diese Möglichkeit verloren geht, da Java nur einfache Vererbung unterstützt.

Finden Sie das nützlich?