Middle
Peut-on lancer uniquement Runnable avec submit ou Callable aussi?
sobes.tech IA
Réponse de l'IA
La méthode submit de ExecutorService en Java peut accepter à la fois Runnable et Callable.
- Si vous passez un
Runnable, la méthode retourne unFuture<?>, que vous pouvez utiliser pour suivre la fin de la tâche, mais le résultat seranull. - Si vous passez un
Callable<V>, alorssubmitretourne unFuture<V>, oùVest le type de résultat renvoyé par la tâche.
Exemple :
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Tâche Runnable"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // result sera 42
executor.shutdown();