You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Danny Ayers <da...@gmail.com> on 2007/02/07 15:28:00 UTC

Re: Can servlets safely spawn threads?

Many thanks!

On 29/01/07, Bill Au <bi...@gmail.com> wrote:
> If you are spawning threads from your servlet, make sure that they are
> cleaned up when
> the servlet is destroyed.  Otherwise, you will have a thread leak.  I have
> ran into this problem
> when the webapp is reloaded without restarting the server.  Each leaked
> thread has a
> reference to its classloader, preventing that classloader from being garbage
> collected.
> Reload enough time will run the perm space out of memory.
>
> Bill
>
>
> On 1/29/07, Christopher Schultz <ch...@christopherschultz.net> wrote:
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Danny,
> >
> > David Delbecq wrote:
> > > 1) Your servlet must always take care to finish all Threads it has
> > > spawned. This mean when servlet gets unloaded, you must have provided a
> > > mecanism in your servlet to stop all running threads your servlet has
> > > created. Remaining Threads not handled by container can either cause
> > > tomcat to not stop when requested or prevent garbage collecting of
> > > webapp when reloading.
> >
> > Consider using an existing thread pool component. It should have a
> > graceful shutdown capability already built into it. David is right: you
> > have to make sure to shut it down when appropriate.
> >
> > > In general, try to avoid spawning your own thread.
> >
> > I agree, which is why I recommend using a thread pool. Yes, you are
> > still technically spawning your own threads (the container will not do
> > it for you), but the point is that you will not be spawning a thread for
> > each request.
> >
> > Set up your thread pool to have a "reasonable" number of threads for
> > your application. You do not want to have loads of users submit jobs
> > that will each spawn a new thread. If you run out of threads in the
> > thread pool, you simply tell the user to come back later. Management of
> > this type of resource is essential to maintaining a stable and useful
> > system.
> >
> > - -chris
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.6 (MingW32)
> > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> >
> > iD8DBQFFvgK+9CaO5/Lv0PARAoIFAJ45DgOyFV9qxS2e+Qt9uHNTtkWpywCdHbnq
> > pltJVjDsmhZMg0143155k7M=
> > =pbEp
> > -----END PGP SIGNATURE-----
> >
> > ---------------------------------------------------------------------
> > To start a new topic, e-mail: users@tomcat.apache.org
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
>
>


-- 

http://dannyayers.com

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org