Warrior
Warrior

Reputation: 39374

Single Thread model

If a servlet implements Single thread model interference ,How servlet container ensure that servlets handle only one request at a time ? Even single thread model interface has no methods too.Thanks.

Upvotes: 3

Views: 2469

Answers (3)

user640554
user640554

Reputation: 58

The idea is not to rely on SingleThreadModel to take care of threading issue. As it is not mandated for servlet containers to bind to the singlethreadmodel contract, it is advisable not to rely on the container to instantiate multiple instances of servlets.

Upvotes: 1

user41871
user41871

Reputation:

It's implementation-dependent. It can create the pool of servlet instances or else it can just have a single servlet instance and synchronize access to it. The latter leads to more contention.

http://java.sun.com/j2ee/1.4/docs/api/javax/servlet/SingleThreadModel.html

Upvotes: 0

Jon Skeet
Jon Skeet

Reputation: 1501003

The servlet container creates a pool of servlet instances, and keeps track of which instances are currently "in use". If all of the instances are "in use" when a new request comes in, the container could either wait for an existing one to become free, or create a new instance to handle the request.

The single thread model isn't widely used though - it's better to make the servlet itself stateless, and allow several requests to be handled simultaneously.

Upvotes: 2

Related Questions