Sobes.tech
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();