Sobes.tech
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 ein Future<?> zurück, das verwendet werden kann, um den Abschluss der Aufgabe zu überwachen, aber das Ergebnis ist null.
  • Wenn ein Callable<V> übergeben wird, gibt submit ein Future<V> zurück, wobei V der 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();