Avatar ·

Em Java: implements Runnable vs extends Thread — qual escolher?

Olá a todos! Comecei a estudar multithreading em Java e fiquei confuso em um ponto básico. Criamos threads de duas maneiras: herdando da classe Thread ou implementando a interface Runnable. Ambos funcionam, mas não entendo qual é a diferença fundamental e qual maneira é considerada correta. Por exemplo, escrevi este código: ```java // Forma 1: extends Thread class MyThread extends Thread { public void run() { System.out.println("Thread rodando: " + Thread.currentThread().getName()); } } // Forma 2: implements Runnable class MyRunnable implements Runnable { public void run() { System.out.println("Thread rodando: " + Thread.currentThread().getName()); } } public class Main { public static void main(String[] args) { MyThread t1 = new MyThread(); t1.start(); Thread t2 = new Thread(new MyRunnable()); t2.start(); } } ``` Ambas as opções dão o mesmo resultado. Mas ouvi dizer que implements