Em Java: implements Runnable vs extends Thread — o que escolher para criar uma thread?
Olá a todos! Comecei a estudar multithreading em Java e fiquei confuso com duas abordagens para criar threads. Em todo lugar escrevem que você pode estender a classe Thread ou implementar a interface Runnable. Mas quando usar qual?
Aqui estão os exemplos que tentei:
1) extends Thread:
```java
class MyThread extends Thread {
public void run() {
System.out.println("Thread 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("Thread funcionando");
}
}
public class Main {
public static void main(String[] args) {
MyRunnable task = new MyRunnable();
Thread t = new Thread(task);
t.start();
}
}
```
Ambas as opções funcionam — eu verifiquei. Mas qual é a diferença? Por que nos livros didáticos recomendam usar Runnable? E é possível