Многопоточность в сессионном компоненте без сохранения состояния?

Спецификация EJB 3.0 не позволяет бизнес-методу сессионного компонента без сохранения состояния создавать новые потоки. Это почему? Что плохого в создании дополнительных рабочих потоков, которые выполняют только необработанные вычисления и никогда не обращаются к серверу приложений?

Скажем, мой сеансовый компонент реализует службу, которая позволяет пользователям загружать изображения, а бизнес-метод выполняет обработку изображений с интенсивным использованием ЦП. эти изображения. Тогда он может использовать только одно ядро ​​процессора для выполнения этой работы, даже если у машины 8 или более ядер? Если я использую стороннюю библиотеку обработки изображений, которая внутренне создает рабочие потоки, я также нарушу спецификации EJB, даже если эта библиотека и эти потоки вообще не имеют ничего общего с контейнером EJB. Это не кажется правильным.

Что может случиться, если я проигнорирую правила EJB и все же создам несколько рабочих потоков для интенсивной обработки процессора? Конечно, эти потоки никогда не будут касаться каких-либо объектов сервера приложений, и поток компонента присоединится к ним перед возвратом. Может ли случиться что-то плохое?

8
задан Pascal Thivent 12 October 2010 в 07:58
поделиться