Модель потоков сервлетов Java - PullRequest
12 голосов
/ 19 января 2010

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

Кто-нибудь может это объяснить?

Ответы [ 3 ]

11 голосов
/ 19 января 2010

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

Обычно контейнер веб-приложения поддерживает пул потоков для обработки запросов, а входящие запросы назначаются потокам по запросу.

1 голос
/ 13 ноября 2016

да, есть интерфейс модель с одним потоком . Это интерфейс маркера. он синхронизирует этот объект сервлета, т.е. одновременно обслуживает объект только один поток. Но он создает проблемы, такие как задержка ответа. Для решения они создают пул объектов, но опять-таки пул также имеет ограниченный размер. Поэтому лучше использовать синхронизированный блок

1 голос
/ 19 января 2010

Исторически у вас было две модели, в зависимости от вашего сервлета. Если сервлет реализовал SingleThreadModel , то запросы были поставлены в очередь. В противном случае, и теперь это единственная модель, сервлет должен быть в состоянии обслуживать несколько запросов одновременно. Таким образом, в этой модели нет очереди, если только контейнер не имеет функции ограничения скорости.

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