Tareas invocables y ejecutables
En Concurrency Utilities for Java EE, los componentes de la aplicación utilizan una tarea invocable o ejecutable para ejecutar código en paralelo con el contexto de Java™ Platform, Enterprise Edition (Java EE) de la hebra de envío.
Una tarea implementa la interfaz java.util.concurrent.Callable o la interfaz java.lang.Runnable.
Un componente que desea ejecutar el trabajo en paralelo localiza un ejecutor gestionado en JNDI (Java Naming and Directory Interface), a continuación llama a un método submit, schedule, invoke o execute utilizando la tarea invocable o ejecutable como un parámetro.
Los métodos submit y schedule devuelven Future o ScheduledFuture. Future es un manejador que proporciona un enlace desde el componente a la tarea actualmente en ejecución. Future se utiliza normalmente cuando el componente necesita esperar el resultado o estado de una tarea, o esperar a que finalice una o varias de sus tareas en ejecución. El método invokeAll toma una lista de las tareas que el componente desea esperar. Se puede especificar un tiempo de espera, para evitar que el componente espere indefinidamente.
Mediante el envío de tareas a un ejecutor gestionado, la aplicación puede utilizar hebras afiliadas con el entorno Java EE y gestionadas por el servidor de aplicaciones. Asimismo, estas hebras tienen un contexto Java EE (por ejemplo, java:comp) y se autentican cuando se activan.