В чем разница между ManagedExecutorService и ExecutorService в Java - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть требование отправить задачу в службу исполнителя в моем приложении wildfly java ee.

Текущий код, как показано ниже,

ExecutorService jobExecutorService = Executors.newSingleThreadExecutor(); jobExecutorService.submit(new Task(request));

При каждом запросе один и тот же фрагмент кода запускается и отправляет задачу однопоточному исполнителю.

Но я не уверен, является ли вновь созданный поток управляемым или это правильный способ отправки задач в моем приложении Java ee для любого асинхронного потока.

Если мне нужно запустить поток, которым должен управлять контейнер, нужно ли мне использовать ManagedExecutorService или есть какая-либо другая реализация.

Нужны некоторые знания об этом.

1 Ответ

0 голосов
/ 14 сентября 2018

Чтобы ответить на вопрос из заголовка:

ManagedExecutorService является частью спецификации Java EE , а ExecutorService является частью спецификации Java SE .

Основное различие между этими двумя интерфейсами состоит в том, что ManagedExecutorService это просто

управляемая версия ExecutorService.

Поскольку вы не должны создавать какие-либо неуправляемые потоки в среде Java EE, вам следует использовать только управляемые компоненты, тогда как неуправляемые идеально подходят для приложений Java SE.

Правильный способ получить ManagedExecutorService в приложении Java EE - внедрить ManagedExecutorService с аннотацией @Resource

@Resource
ManagedExecutorService managedExecutorService;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...