Sobes.tech
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 un Future<?>, que vous pouvez utiliser pour suivre la fin de la tâche, mais le résultat sera null.
  • Si vous passez un Callable<V>, alors submit retourne un Future<V>, où V est 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();