ameyas7 wrote:
i was trying to implement a design which is like dispatcher, worker
model where N number of requests come in, which are queued for the
dispatcher to pick them up and spawn a worker thread to process each
of these requests. of course we will use thread pool for worker
threads.
but i was told that issues might occur with multi threading in webapp.
i am using Tomcat container. is it not advisable to go for such multi
threaded designs in webapps / tomcat ?
one reason could be since webapps typically run for longeeeeeerrrr
period of time than usual desktop apps so the chances of memory leaks
or inappropriate resource handling might affect adversely in webapps
with muti-threaded design.
has anyone experienced such problems with threads in tomcat ?
Servlet containers are intended for:
- web request comes in
- web response go back out
They are not intended for long time number crunching or such.
The container uses threading itself to serve multiple requests
in parallel.
It is legal according to the spec to start multiple threads, so
you could:
- web request comes in
- you start N threads
- you wait to all threads are done
- web response go back out
But if it takes a long time, the the browser will consider
it a timeout.
So it is not a problem whether multi threading will work in Tomcat - it
is a question whether it is a good way of solving the problem.
Arne
It is doable (and we've done it where I work). Although, you might