As a quick reminder, ExecutorService is the standard Java Standalone abstraction for a thread pool. ManagedExecutorService is the Java EE flavor. If you compare both the APIs, you will notice that it inherits from all the features of its standalone siblings, but it gets enriched with an auditing: a submitted task (Runnable) can implement the ManagedTask API, which will associate a listener to the task, which will be notified of the task's phase (Submitted, Starting, Aborted, and Done).
ManagedTask globally gives the following to the container:
- The listener that ManagedTask uses
- A set of properties to customize the behavior of the execution. Three main standard properties are defined and portably usable on all the containers: ...