alexabolada
(usa Debian)
Enviado em 16/04/2023 - 20:53h
Olá! Vou te mostrar um exemplo de como criar um método em Java que execute diversas tarefas em um ThreadPool, aguardando até que todas estejam finalizadas antes de retornar. O método será void.
Aqui está o exemplo:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
public class ExemploThreadPool {
public static void main(String[] args) {
ExemploThreadPool exemplo = new ExemploThreadPool();
exemplo.executarTarefas();
}
public void executarTarefas() {
final int NUM_TAREFAS = 5; // Número de tarefas a serem executadas
final int TIMEOUT = 10; // Tempo máximo de espera para finalização das tarefas
ExecutorService threadPool = Executors.newFixedThreadPool(NUM_TAREFAS);
for (int i = 0; i < NUM_TAREFAS; i++) {
threadPool.execute(new Runnable() {
@Override
public void run() {
// Coloque aqui sua tarefa a ser executada
System.out.println("Tarefa executada por: " + Thread.currentThread().getName());
}
});
}
threadPool.shutdown();
try {
if (!threadPool.awaitTermination(TIMEOUT, TimeUnit.SECONDS)) {
threadPool.shutdownNow();
System.out.println("Timeout: Forçando