Diferenças entre edições de "Java/Thread"

696 bytes adicionados ,  16h45min de 21 de julho de 2016
Etiquetas: Edição via dispositivo móvel Edição feita através do sítio móvel
</source>
 
O código executado por uma ''thread'' pode ser definido de duas formas: através de subclasse da classe <code>Thread</code> ou da implementação da interface <code>java.lang.Runnable</code>. Em ambos os casos as instruções devem estar inseridas no corpo do método <code>void run</code>.
====Parâmetros possíveis====
O código executado por uma ''thread'' pode ser definido de duas formas: através de subclasse da <code>Thread</code> ou da implementação da interface <code>Runnable</code>.
 
Os construtores que não especificam em sua lista de parâmetros variável do tipo <code>Runnable target</code> em sua lista de parâmetros devem ser chamados em uma subclasse de <code>Thread</code>.
<source lang="java" highlight="4">
public class Segmento extends Thread {
 
public Segmento(String nome) {
super(nome);
}
 
@Override
public void run() {
// Código
}
}
 
</source>
 
Isso ocorre porque o método <code>void run</code> de <code>Thread</code> chama o método <code>void run</code> de sua variável <code>Runnable target</code>, caso <code>target</code> não seja uma referência nula.
 
Na próxima seção será explicado o porquê de <code>Runnable</code> ser uma escolha melhor que <code>Thread</code> para definir o código a ser executado por uma ''thread''.
 
<code>String name</code> especifica um nome para a ''thread''. Caso não especificado no construtor o nome da ''thread'' será criado automaticamente derivado do modelo '''Thread-0''', onde '''0''' é um número incrementado a cada nova '''thread''' criada sem definição de nome.