Middle
Kann man mit submit nur Runnable oder auch Callable starten?
sobes.tech KI
Antwort von AI
Die Methode submit des ExecutorService in Java kann sowohl Runnable als auch Callable akzeptieren.
- Wenn ein
Runnableübergeben wird, gibt die Methode einFuture<?>zurück, das verwendet werden kann, um den Abschluss der Aufgabe zu überwachen, aber das Ergebnis istnull. - Wenn ein
Callable<V>übergeben wird, gibtsubmiteinFuture<V>zurück, wobeiVder Rückgabetyp der Aufgabe ist.
Beispiel:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Runnable-Aufgabe"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // result wird 42 sein
executor.shutdown();