Middle
Môže sa pomocou submit spustiť iba Runnable alebo aj Callable?
sobes.tech AI
Odpoveď od AI
Metóda submit z ExecutorService v Jave môže akceptovať ako Runnable, tak Callable.
- Ak odovzdáte
Runnable, metóda vrátiFuture<?>, ktorý môžete použiť na sledovanie dokončenia úlohy, ale výsledok budenull. - Ak odovzdáte
Callable<V>, potomsubmitvrátiFuture<V>, kdeVje typ výsledku, ktorý úloha vráti.
Príklad:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable úloha"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // výsledok bude 42
executor.shutdown();