Junior — Middle
Qual é o papel da classe Future em Java e para que ela serve?
sobes.tech IA
Resposta da IA
A classe Future em Java representa o resultado de uma operação assíncrona que pode ser concluída no futuro. Destina-se a:
- Obter o resultado de um cálculo que é executado em outro thread.
- Verificar se a operação foi concluída (
isDone()) ou se foi cancelada (isCancelled()). - Possibilidade de cancelar a tarefa (
cancel()).
Usa-se junto com ExecutorService para gerenciar tarefas assíncronas. Por exemplo, pode-se enviar uma tarefa para execução e continuar a trabalhar, e depois obter o resultado quando estiver pronto.
Exemplo:
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(() -> {
Thread.sleep(1000); // simulação de uma operação longa
return 42;
});
// Pode-se realizar outras ações aqui
try {
Integer result = future.get(); // bloqueia até o resultado estar pronto
System.out.println("Resultado: " + result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
executor.shutdown();