Sobes.tech
Junior — Middle

Wat is de rol van de interfaces Callable en Runnable in Java, en welke klasse implementeert deze interfaces?

sobes.tech AI

Antwoord van AI

In Java worden de interfaces Runnable en Callable gebruikt om taken te beschrijven die in aparte threads kunnen worden uitgevoerd.

  • Runnable — vertegenwoordigt een taak die geen resultaat retourneert en geen gecontroleerde uitzonderingen gooit. De methode run() geeft geen waarde terug.
  • Callable<V> — vergelijkbaar met Runnable, maar kan een resultaat van type V teruggeven en uitzonderingen gooien. De methode call() geeft een waarde terug.

De klasse Thread implementeert de interface Runnable, waardoor het mogelijk is om threads te maken die code uitvoeren uit de run()-methode.

Voorbeeld van gebruik van Callable met ExecutorService:

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