Junior — Middle
Quais componentes do pacote concurrency você utilizou nos seus projetos?
sobes.tech IA
Resposta da IA
Nos projetos Java, utilizei os seguintes componentes do pacote java.util.concurrent:
- ExecutorService — para gerir o pool de threads e executar tarefas de forma assíncrona.
- Future e Callable — para obter o resultado da execução de uma tarefa numa thread separada.
- CountDownLatch e CyclicBarrier — para sincronizar threads, por exemplo, esperar que várias tarefas terminem.
- ConcurrentHashMap — implementação thread-safe de um mapa para acesso paralelo.
- Semaphore — para limitar o número de operações que podem ser executadas simultaneamente.
Exemplo de uso do ExecutorService com Callable:
ExecutorService executor = Executors.newFixedThreadPool(2);
Callable<Integer> task = () -> {
// alguma tarefa computacional
return 123;
};
Future<Integer> future = executor.submit(task);
try {
Integer result = future.get();
System.out.println("Resultado: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();