Middle
Se poate lansa doar Runnable sau și Callable cu submit?
sobes.tech AI
Răspuns de la AI
Metoda submit din ExecutorService în Java poate accepta atât Runnable, cât și Callable.
- Dacă se transmite un
Runnable, metoda returnează unFuture<?>, care poate fi folosit pentru a urmări finalizarea sarcinii, dar rezultatul va finull. - Dacă se transmite un
Callable<V>, atuncisubmitreturnează unFuture<V>, undeVeste tipul rezultatului returnat de sarcină.
Exemplu:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Sarcină Runnable"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // rezultatul va fi 42
executor.shutdown();