Hello dear rachers,
I will ask again since last time I did not get any answers.

It has to do with async support of Servlet 3.0.
Now, from what I understand async support has two main purposes : release the http container Thread as soon as possible and support the Comet-like programming.
I want to discuss the first one really. So, the idea is this, every time we send in a request, the container allocates a Thread for it to be processed. If there is a Web Service (for example) that this particular Thread needs to access and this Web Service takes a lot of time to respond, then we "start" the async support: meaning that we start another Thread (not a http container Thread), but a usual Thread and we pass the actual work to this second Thread, while the Http Container thread goes back to the pool. Now this is where I do not get it. We are supposed to resolve the Thread starvation issue and, but we are creating a new Thread... Also, look at the sample below:
AsyncContext context = request.startAsync(request, response);
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
executor.execute(new AsyncRunnable(context));
where AsyncRunnable is nothing more then a slow resource (the Web Service simulated by a Thread that sleeps for 10 seconds). If I am the client and I issue a request , I still have to wait for those 10 seconds to pass before I get my response. I do not really care that the Http Thread was released, then another Thread did my Job, and then the same Http Thread issued my response back.
Basically to me, Async Servlet is just a way to release the Http Container Thread - it is a server side enchantment, if the server is not busy (not even close to Thread starvation), then the user experience will not be any different, right? At the same time this technique can be achieved with synchronous Servlet and a simple Thread - I so not then get it what is the use of async Servlets asnyway?
In case I said something stupid, please correct me.
Thank you,
Eugene.