Typically, a servlet class is instantiated the first time it is invoked. The same instance will be used over several client requests, so all members that are declared in that servlet are shared accross clients.
That is what is meant by multi threaded model, multiple clients that access the same instance. There are situations where you want to protect your servlet member variables from being modified by different clients.
In this case, you can have your servlet implement the marker interface SingleThreadModel. Every time a client makes a request to a servlet that implements this interface, the engine will create a new instance of the servlet.
For performance reasons, the engine can also maintain a instance pool, handing out instances as they are needed. Or it could also serialize client requests, executing one after another.
There is no such interface as MultiThreadedModel. Servlets are intrinsically multithreaded. This means a single instance can be accessed by more than one thread.
If the container receives multiple requests for one servlet simultaneously, the service () method of that servlet will be executed concurrently in multiple threads
If a servlet implements the SingleThreadModel interface, the container will not execute the service () method in more than one thread simultaneously. The servlet container may synchronize access to a single instance of the servlet. However, servicing requests sequentially seriously hurts performance. To avoid the performance problem, a servlet container may create multiple instances of the servlet class.
That is what is meant by multi threaded model, multiple clients that access the same instance. There are situations where you want to protect yourservlet member variables from being modified by different clients.
if the servlet implements multi threaded model,container executes service() method concurrently in multiple threads. while in single threaded model, container executes service() method only once per thread at a time other requests are in waiting
Servlet is not thread safe.we need to make it is threadsafe we can goto SINGLE INSTANCE MULTIPLE THREADS MODEL.
As the model itself it is giving difference. when you install your application in to server container create only one object.If any nuber reguests comes it is used only that object addtional each request one thread is extra created.
in multi threaded model multiple threads are acting on the service method concurrently, where as in single thred model only one thread will execute the service method,while the remaining threads are waiting