Segue um exemplo de código em Java que atende aos requisitos da questão: ``` import java.util.Random; public class BuscaThread extends Thread { private int[] vetor; private int elemento; private int inicio; private int fim; private int resultado = -1; public BuscaThread(int[] vetor, int elemento, int inicio, int fim) { this.vetor = vetor; this.elemento = elemento; this.inicio = inicio; this.fim = fim; } public int getResultado() { return resultado; } public void run() { for (int i = inicio; i < fim; i++) { if (vetor[i] == elemento) { resultado = i; break; } } } public static void main(String[] args) { int tamanho = 100; int[] vetor = new int[tamanho]; Random random = new Random(); for (int i = 0; i < tamanho; i++) { vetor[i] = random.nextInt(1000); } int elemento = random.nextInt(1000); int numThreads = 4; BuscaThread[] threads = new BuscaThread[numThreads]; int elementosPorThread = tamanho / numThreads; for (int i = 0; i < numThreads; i++) { int inicio = i * elementosPorThread; int fim = (i == numThreads - 1) ? tamanho : (i + 1) * elementosPorThread; threads[i] = new BuscaThread(vetor, elemento, inicio, fim); threads[i].start(); } int resultado = -1; for (int i = 0; i < numThreads; i++) { try { threads[i].join(); if (threads[i].getResultado() != -1) { resultado = threads[i].getResultado(); break; } } catch (InterruptedException e) { e.printStackTrace(); } } if (resultado == -1) { System.out.println("Elemento não encontrado"); } else { System.out.println("Elemento encontrado na posição " + resultado); } } } ``` Nesse exemplo, é criada uma classe `BuscaThread` que estende a classe `Thread` e é responsável por buscar um elemento em uma parte do vetor. A classe possui um construtor que recebe o vetor, o elemento a ser buscado, o índice de início e o índice de fim da parte do vetor que a thread deve buscar. A classe também possui um método `getResultado()` que retorna a posição do elemento no vetor ou -1 caso o elemento não tenha sido encontrado. No método `main`, é criado um vetor de tamanho 100 com números aleatórios gerados pelo objeto `Random`. Também é gerado um elemento aleatório a ser buscado. Em seguida, são criadas 4 threads, cada uma responsável por buscar uma parte do vetor. O número de elementos por thread é calculado dividindo o tamanho do vetor pelo número de threads. As threads são iniciadas e, em seguida, é feita a espera pelo término de cada thread. Se uma thread encontrar o elemento, o resultado é armazenado e as outras threads são interrompidas. Por fim, é exibida a posição do elemento no vetor ou a mensagem "Elemento não encontrado".
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar