Middle
Csak Runnable-t vagy Callable-t is lehet indítani a submit segítségével?
sobes.tech MI
Válasz az MI-től
A Java ExecutorService-ben a submit metódus elfogadhat Runnable-t és Callable-t is.
- Ha
Runnable-t adunk át, a metódus egyFuture<?>-t ad vissza, amit a feladat befejezésének nyomon követésére lehet használni, de az eredménynulllesz. - Ha
Callable<V>-t adunk át, akkor asubmitegyFuture<V>-t ad vissza, aholVa feladat által visszaadott eredmény típusa.
Példa:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable feladat"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // az eredmény 42 lesz
executor.shutdown();