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
Runnabledoorgeeft, geeft de methode eenFuture<?>terug, die gebruikt kan worden om de voltooiing van de taak te volgen, maar het resultaat zalnullzijn. - Als je een
Callable<V>doorgeeft, dan geeftsubmiteenFuture<V>terug, waarbijVhet 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();