Как кодировать параллелизм (создание потоков) на сервере приложений? - PullRequest
1 голос
/ 14 февраля 2012

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

Запрещено ли создавать потоки самостоятельно на сервере приложений? (например, новая тема () ...) Если да, существует ли общий подход независимо от используемого сервера приложений?

Ответы [ 3 ]

0 голосов
/ 14 февраля 2012

В EJB 3.1 введена аннотация @Asynchronous, которая позволяет запускать некоторый код в отдельном потоке, управляемом контейнером. Как здесь.

0 голосов
/ 17 февраля 2012

Вы не должны создавать свои собственные темы, когда находитесь в EJB.Действительно, EJB 3.1 вводит аннотацию @Asynchronous для этой цели.В предыдущих версиях WebSphere и WebLogic реализован WorkManager, еще один специальный стандарт (в конце концов, JSR 237 для его создания был заброшен) для рабочих потоков, которые можно запускать из EJB.

0 голосов
/ 14 февраля 2012

Спецификация EJB назначает контейнеру EJB ответственность за управление потоками.

Разрешение экземплярам корпоративных бинов создавать потоки и управлять ими может повлиять на способность контейнера контролировать жизненный цикл его компонентов. Управление потоками - это не бизнес-функция, это деталь реализации, обычно сложная и зависящая от платформы.

Разрешение контейнера управлять потоками освобождает разработчика корпоративного компонента от решения проблем с потоками.,Многопоточные приложения все еще возможны, но управление многопоточностью находится в контейнере, а не в корпоративном компоненте.

source: http://java.sun.com/blueprints/qanda/ejb_tier/restrictions.html#threads

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