Tarefas Callable e Runnable
No Concurrency Utilities for Java EE, uma tarefa Callable ou Runnable é usada por componentes de aplicativo para executar código em paralelo com o contexto Java™ Platform, Enterprise Edition (Java EE) do encadeamento de envio.
Uma tarefa implementa a interface java.util.concurrent.Callable ou a interface java.lang.Runnable.
Um componente que espera para executar trabalho em paralelo localiza um executor gerenciado em Java Naming and Directory Interface (JNDI), em seguida, chama um método de envio, planejamento, chamada ou execução usando a tarefa Callable ou Runnable como um parâmetro.
Os métodos de envio e planejamento retornam Future ou ScheduledFuture. Future é um identificador que fornece um link do componente para a tarefa agora em execução. Future geralmente é usado quando o componente precisa obter o resultado ou status de uma tarefa, ou esperar a conclusão de uma ou mais de suas tarefas em execução. O método invokeAll tem uma lista de tarefas que o componente deseja esperar. Um tempo limite pode ser especificado, o que impede o componente de aguardar indefinidamente.
Ao enviar tarefas para um executor gerenciado, o aplicativo pode usar encadeamentos que são afiliados ao ambiente Java EE e gerenciados pelo servidor de aplicativos. Além disso, esses encadeamentos possuem contexto Java EE (por exemplo, um java:comp) e são autenticados quando são disparados.