Разница между потоками, созданными веб-контейнером, и обычными потоками?

Могу ли я узнать, чем потоки, созданные веб-контейнером (новый поток создается для каждого запроса), отличаются от обычных потоков, которые создаются путем расширения класса потока или реализации интерфейса Runnable. Кроме того, как веб-контейнер создает потоки, даже если интерфейс сервлета или сервлеты, расширяющие его, не содержат никакого метода run().


person Kumar    schedule 05.06.2015    source источник
comment
Зависит от используемого веб-контейнера.   -  person Robby Cornelissen    schedule 05.06.2015
comment
@Robby: я использую Apache Tomcat в качестве своего веб-контейнера.   -  person Kumar    schedule 05.06.2015
comment
Боюсь, лучше всего будет либо поискать проектную документацию Tomcat, либо прочитать исходный код Tomcat.   -  person Robby Cornelissen    schedule 05.06.2015
comment
Никакой разницы, кроме логики внутри метода запуска, и он объединен.   -  person Jafar Ali    schedule 05.06.2015
comment
Контейнер сервлета не создает новый поток для каждого запроса. Он использует пул потоков. Потоки берутся из пула для обработки запроса, а затем возвращаются в пул. Темы есть темы. Потоки Tomcat ничем не отличаются от любого другого потока.   -  person JB Nizet    schedule 05.06.2015


Ответы (2)


Все потоки в java создаются путем расширения класса потоков или реализации интерфейса Runnable. Таким образом, потоки веб-контейнеров также создаются таким же образом.

Вы не видите метод запуска внутри сервлета, потому что код сервлета вызывается внутри метода запуска потока, который создается «основным» потоком контейнера. Контейнер абстрагирует все эти детали, поэтому мы можем сосредоточиться на написании фактического логического сервера по запросу, вместо того, чтобы беспокоиться об управлении несколькими запросами.

У каждого контейнера есть «основной» поток, как у нас для нашего автономного приложения или аналогично SpringMain в spring.

ЕСЛИ вы хотите различать потоки контейнера и ваши потоки, вы можете посмотреть на их имена, и вы должны найти шаблон. Вы можете контролировать номенклатуру потоков, созданных вашей бизнес-логикой.

person Pranalee    schedule 05.06.2015

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

(Пул потоков — это набор предварительно созданных бездействующих потоков, готовых к работе, обычно организованных в очередь).

person Shailesh Yadav    schedule 08.06.2015