[RESOLVIDO] é melhor implementar Runnable ou criar herança da Thread?

Então, vejo que pra utilizar Thread existe duas alternativas, implementando Runnable ou herdando Thread… e qual é mais recomendado??w ou não tem esse negócio???

Obrigado pela atenção!!!

A vantagem de implementar a interface Runnable é que você pode facilmente ter uma classe que estenda outra e ainda sim possa ser executada dentro de uma Thread.
Eu sempre prefiro implementar Runnable ao invés de estender Thread.

O mais recomendado é implementar Runnable, mas estender Thread é praticamente a mesma coisa, com a desvantagem de que você só pode herdar de uma classe de cada vez.

[]´s

[quote=davidbuzatto]A vantagem de implementar a interface Runnable é que você pode facilmente ter uma classe que estenda outra e ainda sim possa ser executada dentro de uma Thread.
Eu sempre prefiro implementar Runnable ao invés de estender Thread.

O mais recomendado é implementar Runnable, mas estender Thread é praticamente a mesma coisa, com a desvantagem de que você só pode herdar de uma classe de cada vez.

[]´s
[/quote]

vlw pela dica!!!

Outra vantagem de implementar Runnable é que fica mais fácil disparar a thread através de outro mecanismo como o ExecutorService.

Por exemplo, vamos supor que você perceba que seria interessante fixar o número de thread simultaneas em 3, e usar um thread pool para evitar ficar criando e destruindo threads.

Nesse caso, você pode fazer:

ExecutorService executor = Executors..newFixedThreadPool(3); executor.execute(seuRunnable);

O Thread pode ser passado também no método execute, mas não parece perder o sentido estender thread, já que o mecanismo de execução não é a classe Thread, mas o ExecutorService?

E também tem o fato de poder reaproveitar Threads em idle para rodarem seu Runnable através do ExecutorService invés de criar Threads toda hora.

Acredito que o uso de threads “com casca e tudo”, sem usar algum framework como o java.util.concurrent, deveria ser “deprecated” - elas são muito mais perigosas que o goto nas mãos de quem não entende o que está fazendo (ou pior, dando manutenção. Algo que funciona perfeitamente para o cara que escreveu primeiramente o código, ao efetuarmos uma manutenção - por pequena que seja - começa a “pifar”).