2015-06-05 7 views
0

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

+0

В зависимости от используемого контейнера в сети. –

+0

@Robby: Я использую Apache Tomcat в качестве своего веб-контейнера. – Kumar

+0

Боюсь, что лучше всего будет либо искать проектные документы Tomcat, либо прочитать исходный код Tomcat. –

ответ

1

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

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

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

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

0

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

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