Middle
Con submit si può avviare solo Runnable o anche Callable?
sobes.tech AI
Risposta dell'AI
Il metodo submit di ExecutorService in Java può accettare sia Runnable che Callable.
- Se si passa un
Runnable, il metodo restituisce unFuture<?>, che può essere usato per monitorare il completamento del task, ma il risultato sarànull. - Se si passa un
Callable<V>, allorasubmitrestituisce unFuture<V>, doveVè il tipo di risultato restituito dal task.
Esempio:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Task Runnable"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // result sarà 42
executor.shutdown();