Should I use the SingleThreadModel interface or provide explicit synchronization to make my JSP pages and servlets thread safe?
Created Feb 18, 2000
Govind Seshadri You can have a any servlet implement the SingleThreadModel interface. JSP
pages implement this in the background when you specify
Also, note that SingleThreadModel is pretty resource
intensive from the server's perspective. The most
serious issue however is when the number of concurrent
requests exhaust the servlet instance pool. In that case,
all the unserviced requests are queued until something
becomes free - which results in poor performance. Since
the usage is non-deterministic, it may not help much
even if you did add more memory and increased the size
of the instance pool.
<%@ page isThreadSafe="false" %>
Although the SingleThreadModel technique is easy to use, and works well for low volume sites, it does not scale well. If you anticipate your users to increase in the future, you may be better off implementing synchronization for your variables. The key however, is to effectively minimize the amount of code that is synchronzied so that you take maximum advantage of multithreading.