wood burning stoves 2.0*
The moose likes Servlets and the fly likes Thread safety in Servlets Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "Thread safety in Servlets" Watch "Thread safety in Servlets" New topic
Author

Thread safety in Servlets

Manjusha Maddala
Greenhorn

Joined: Oct 26, 2009
Posts: 2
Hi all,

Here's my understanding of handling thread safety wrt Servlets. The question follows..

For each client request, the Servlet container spawns a new thread which inturn calls the service() method of the Servlet. Lets say, the thread has a run() method within which there's a statement like: servlet.service(request, response); This is all taken care of by th servlet container. As a programmer, our job is to make sure the doGet()/doPost() are thread-safe.

Now, consider a general situation where we have a thread class, multiple instances of which are created in some other class. Lets say, under the run() method of this thread, there is a call to some library function in the Java API (similar to how the service() of Servlet gets called). In this case, how do we ensure that the Java API function is thread-safe? In general, is the Java API designed to handle thread safety?

I hope I made myself clear. Have I got something fundamentally wrong, or is this a valid question?

Thanks!
Ankit Garg
Sheriff

Joined: Aug 03, 2008
Posts: 9280
    
  17

Hi Manjusha, welcome to javaranch.

Not all the java API classes are thread safe. Like StringBuilder is not thread safe but StringBuffer is, ArrayList is not thread safe but Vector is. So you'll have to ensure thread safety in such cases. But this only applies to a single instance of the API class. If I have one StringBuilder object which is access simultaneously by multiple servlets or multiple threads in the same servlet, then thread-safety is needed on the programmers end.

HTH


SCJP 6 | SCWCD 5 | Javaranch SCJP FAQ | SCWCD Links
Leandro Coutinho
Ranch Hand

Joined: Mar 04, 2009
Posts: 417
To avoid thread problems in servlets, you can simply don't have instance variables, right?

YourServlet {
int x; // unpredictable results
}
Manjusha Maddala
Greenhorn

Joined: Oct 26, 2009
Posts: 2
Thank you, Ankit and Leandro.
Leandro Coutinho
Ranch Hand

Joined: Mar 04, 2009
Posts: 417
http://www.javaworld.com/javaworld/jw-07-2004/jw-0712-threadsafe.html

hth
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
 
subject: Thread safety in Servlets
 
Similar Threads
Multi Thread
few intrvw questions
SingleThreadModel
Hello from the author: an introduction to the book
Request Attributes are thread safe?