Estou implementando o uso de threads extendendo a classe thread…
minha duvida e o seguinte
quero passar para cada thread um vetor…
de forma que cada vetor será manipulado em uma thread diferente…
estou na duvida de como passar o parametro…
se eu implementar desta forma da certo??se nao como devo fazer???
[code]public class SimpleThread extends Thread
{
public SimpleThread(String str) {
super(str);
}
public void run(String[] vetor)
{
…codigo…
}
}[/code]
ai no main apenas utilizo
SimpleThread thread1 = new SimpleThread("Thread 1");
SimpleThread thread2 = new SimpleThread("Thread 2");
SimpleThread thread3 = new SimpleThread("Thread 3");
SimpleThread thread4 = new SimpleThread("Thread 4");
thread1.run(String[] vetor1);
thread2.run(String[] vetor2);
thread3.run(String[] vetor3);
thread4.run(String[] vetor4);
Note que, como não pus nenhuma sincronização nas threads, os resultados são um pouco embaralhados de propósito. Um exemplo de saída:
O(A) presidente de Chile é:
Michelle O(A) presidente de Brasil é:
O(A) presidente de Argentina é:
Luiz Inácio Lula da Silva
Bachelet
O(A) presidente de Venezuela é:
Cristina Hugo Elisabet Rafael Fernández Chávez de Frías
Kirchner
Todos os presidentes foram impressos.
ou então:
Iremos imprimir os nomes dos presidentes, talvez um pouco embaralhados
O(A) presidente de Chile é:
Michelle O(A) presidente de Venezuela é:
O(A) presidente de Brasil é:
O(A) presidente de Argentina é:
Bachelet Cristina Luiz Hugo Inácio Elisabet
Fernández Lula Rafael da de Silva
Chávez Frías
Kirchner
Todos os presidentes foram impressos.
Só para te ajudar a entender o que o Thingol fez, vou tentar explicar o que você precisaria ajustar no seu código para fazer o que você queria…
Você não passa os argumentos no método run… se você precisar passar algum valor a ser utilizado em uma Thread, você precisa informar esse valor no construtor.
Você deve implementar o método run() - note que não recebe parâmetros - e colocar o código que será executado quando a thread for iniciada.
Para iniciar a Thread, você não chama o método run(), você deve chamar o método start().
Sabendo isso, veja como fazer na prática no código que Thingol mostrou.