2010-10-25 9 views

Respuesta

30

La diferencia es que execute no devuelve un Future, por lo que no puede esperar a la finalización de la Runnable y obtener ninguna excepción se lanza usando eso.

+4

'Future' también le permite obtener excepciones lanzadas por' Runnable'. – axtavt

+0

@axtavt: Cierto, supongo que debería mencionar eso también. – ColinD

14

El método submit(...) es una extensión marco ejecutor introducido en ExecutorService interfaz.

Su principal diferencia con respecto a execute(Runnable) es que submit(...) puede aceptar una Callable<V> (mientras que execute() sólo acepta Runnable) y devuelve una instancia de Future<V>, que se puede utilizar más adelante en la persona que llama para recuperar el resultado de forma asíncrona (potencialmente bloqueo hasta que el cálculo realizado por el Callable se completa).

Cuestiones relacionadas