Sobes.tech
Junior — Middle

Qual é o papel das interfaces Callable e Runnable em Java, e qual classe implementa essas interfaces?

sobes.tech IA

Resposta da IA

Em Java, as interfaces Runnable e Callable são usadas para descrever tarefas que podem ser executadas em threads separadas.

  • Runnable — representa uma tarefa que não retorna resultado e não lança exceções verificadas. O método run() não retorna valor.
  • Callable<V> — semelhante ao Runnable, mas pode retornar um resultado do tipo V e lançar exceções. O método call() retorna um valor.

A classe Thread implementa a interface Runnable, permitindo criar threads que executam o código do método run().

Exemplo de uso de Callable com ExecutorService:

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
    // Alguma tarefa computacional
    return 123;
};
Future<Integer> future = executor.submit(task);
Integer result = future.get();
executor.shutdown();