Avatar ·

In Java: implements Runnable vs extends Thread – was wählen, um einen Thread zu erstellen?

Hallo zusammen! Ich habe angefangen, Multithreading in Java zu lernen und bin bei zwei Ansätzen zur Thread-Erstellung verwirrt. Überall steht, dass man entweder die Klasse Thread erweitern oder das Interface Runnable implementieren kann. Aber wann verwendet man was? Hier sind Beispiele, die ich ausprobiert habe: 1) extends Thread: ```java class MyThread extends Thread { public void run() { System.out.println("Thread läuft"); } } public class Main { public static void main(String[] args) { MyThread t = new MyThread(); t.start(); } } ``` 2) implements Runnable: ```java class MyRunnable implements Runnable { public void run() { System.out.println("Thread läuft"); } } public class Main { public static void main(String[] args) { MyRunnable task = new MyRunnable(); Thread t = new Thread(task); t.start(); } } ``` Beide Varianten funktionieren – ich habe es überprüft. Aber worin besteht der Unterschied? Warum wird in Lehrbüchern empfohlen, Runnable zu verwenden? Und kann man