qual a diferença em utilizar run() e start() …no exemplo abaixo não vi diferença …
Tem alguma???
abs
public class Ac extends Thread {
private int codigo;
public void run(){
System.out.println("Thread..."+Thread.currentThread().getName());
System.out.println("Thread..."+Thread.currentThread().getId());
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Ac().start();
new Ac().run();
}
}
Quando você chama run(), você está simplesmente chamando um método de uma classe, e esse método será executado serialmente (não será criada uma thread). E quando você chama start(), a jvm cria uma nova thread e depois irá chamar o run(), que será executado paralelamente com as outras threads.
adicionando que ao tratar de threads voce possui duas opcoes :
-fazer uma subclasse da classe thread
-implementar a interface Runnable
Cada maneira tem suas vantagens e desvantagens cabendo a voce decidir .
agora complementando oque foi dito , sobre a diferenca entre start() e run() :