Avatar ·

En Java: implements Runnable vs extends Thread — ¿qué elegir para crear un hilo?

¡Hola a todos! Empecé a estudiar multihilo en Java y me confundí con dos enfoques para crear hilos. En todas partes escriben que se puede extender la clase Thread o implementar la interfaz Runnable. Pero, ¿cuándo usar cuál? Aquí están los ejemplos que probé: 1) extends Thread: ```java class MyThread extends Thread { public void run() { System.out.println("El hilo está funcionando"); } } 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("El hilo está funcionando"); } } public class Main { public static void main(String[] args) { MyRunnable task = new MyRunnable(); Thread t = new Thread(task); t.start(); } } ``` Ambas opciones funcionan, lo comprobé. Pero, ¿cuál es la diferencia? ¿Por qué en los libros de texto recomiendan usar Runnable? ¿Y se puede