Контейнер сервлета создает пул экземпляров сервлета и отслеживает, какие экземпляры в данный момент «используются». Если все экземпляры «используются» при поступлении нового запроса, контейнер может либо дождаться освобождения существующего, либо создать новый экземпляр для обработки запроса.
Однопоточная модель широко не используется - лучше сделать сам сервлет без состояний и разрешить обработку нескольких запросов одновременно.