Olá, preciso implementar um código java usando threads, como o anunciado da atividade pede:
"O trabalho consiste em alterar o código que busca valores dentro de um vetor (disponível no blackboard) de forma a criar N threads de acordo com a vontade do usuário (ler o número de threads que o usuário deseja criar) e buscar um valor no vetor (apenas 1, também inserido pelo usuário) de forma paralela, ou seja, cada thread criada deve procurar por um região diferente do vetor. Ao final da execução mostre qual foi a thread que encontrou o valor."
PS: EU SÓ QUERO SABER POR ONDE EU COMEÇO, A LÓGICA EU ENTENDI, SÓ NÃO SEI COMO FAZER.
classe thread_busca
package trabalho_thread;
import java.util.logging.Level;
import java.util.logging.Logger;
class ThreadBusca extends Thread {
private int vetor[];
private int numeroProcurar;
public ThreadBusca(int[] vet, int numeroProcurar) {
this.vetor = vet;
this.numeroProcurar = numeroProcurar;
}
@Override
public void run() {
for (int i = 0; i < vetor.length; i++) {
if (vetor[i] == numeroProcurar) {
System.out.println("Indice de "+numeroProcurar+" eh "+i);
return;
}
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
System.out.println("Indice de "+numeroProcurar+" eh -1");
}
}
classe main
package trabalho_thread;
import java.util.Arrays;
import java.util.Random;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
int vet[] = new int[200];
Random random = new Random();
for(int i=0;i<200;i++){
vet[i] = random.nextInt(4999)+1;
}
System.out.println(Arrays.toString(vet));
int numero=-1;
do{
numero = Integer.parseInt(JOptionPane.showInputDialog("Numero a pesquisar:"));
new ThreadBusca(vet, numero).start();
}while(numero>0);
}
}