Sobes.tech
Middle

Kan je met submit alleen Runnable starten of ook Callable?

sobes.tech AI

Antwoord van AI

De submit-methode van ExecutorService in Java kan zowel Runnable als Callable accepteren.

  • Als je een Runnable doorgeeft, geeft de methode een Future<?> terug, die gebruikt kan worden om de voltooiing van de taak te volgen, maar het resultaat zal null zijn.
  • Als je een Callable<V> doorgeeft, dan geeft submit een Future<V> terug, waarbij V het type resultaat is dat door de taak wordt geretourneerd.

Voorbeeld:

ExecutorService executor = Executors.newFixedThreadPool(2);

// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable taak"));

// Callable
Future<Integer> future2 = executor.submit(() -> {
    Thread.sleep(1000);
    return 42;
});

Integer result = future2.get(); // resultaat zal 42 zijn
executor.shutdown();