我需要在我的 Wildfly Java EE 应用程序中向执行器服务提交任务。
当前代码如下,
ExecutorService jobExecutorService = Executors.newSingleThreadExecutor();
jobExecutorService.submit(new Task(request));
对于每个请求,同一段代码将运行并提交单线程执行器的任务。
但我不确定新构造的线程是否受到管理,或者是否是在我的 java ee 应用程序中为任何异步流提交任务的正确方法。
如果我需要启动一个应由容器管理的线程,我是否需要使用 ManagedExecutorService 或者是否有任何其他实现。
需要一些这方面的知识。
回答一下标题中的问题:
ManagedExecutorService是Java EE 规范的一部分,也是Java SE 规范ExecutorService的一部分。
这两个接口之间的主要区别在于,它们ManagedExecutorService只是一个
ExecutorService 的可管理版本。
由于您不应该在 Java EE 环境中生成任何非托管线程,因此您应该只使用其中的托管内容,而非托管对于 Java SE 应用程序来说完全没问题。
ManagedExecutorService在 Java EE 应用程序中获取 a 的正确方法是使用ManagedExecutorService注释@Resource注入
@Resource
ManagedExecutorService managedExecutorService;
Run Code Online (Sandbox Code Playgroud)