aajjbb:
ainda estou iniciando em threads, nao posso ajudar muito, mas, nao entendei o significado desse while(true)
Quer dizer que o while vai sempre executar. O exemplo que o Tiago.Anjolo deu esta bem feito, basta interpretar.
gpd38, sobre sua duvida, nao tem como parar uma Thread e executa-la novamente, ou causara a Exception que voce colocou.
Isso porque, uma Thread é permitida apenas usar o metodo start() uma unica vez. Mas tem como voce suspender (suspend()) e resumir (resume()) sua execução, que em outros termos, seria parar e continuar da onde parou.
Faça o teste para voce ver:
class Teste implements Runnable {
public void run(){
while(true){
System.out.println("Teste 1");
}
}
}
import java.lang.Thread;
class ExecutaTeste{
public static void main(String args[]){
Thread t = new Thread(new Teste());
t.start();
for(int i = 0; i < 1000; i++){
System.out.println("Teste 2");
}
t.suspend();
t.resume();
}
}
Agora, a que vai dar erro:
import java.lang.Thread;
class ExecutaTeste{
public static void main(String args[]){
Thread t = new Thread(new Teste());
t.start();
for(int i = 0; i < 1000; i++){
System.out.println("Teste 2");
}
t.stop();
t.start();
}
}
Estou aprendendo tambem sobre Thread, estou lendo isso aqui:
http://oreilly.com/catalog/expjava/excerpt/index.html
Abraços