Middle
¿Con submit se puede lanzar solo Runnable o también Callable?
sobes.tech AI
Respuesta de la IA
El método submit de ExecutorService en Java puede aceptar tanto Runnable como Callable.
- Si se pasa un
Runnable, el método devuelve unFuture<?>, que se puede usar para rastrear la finalización de la tarea, pero el resultado seránull. - Si se pasa un
Callable<V>, entoncessubmitdevuelve unFuture<V>, dondeVes el tipo de resultado devuelto por la tarea.
Ejemplo:
ExecutorService executor = Executors.newFixedThreadPool(2);
// Runnable
Future<?> future1 = executor.submit(() -> System.out.println("Tarea Runnable"));
// Callable
Future<Integer> future2 = executor.submit(() -> {
Thread.sleep(1000);
return 42;
});
Integer result = future2.get(); // result será 42
executor.shutdown();