Dobry den,

myslim, ze dost zalezi od toho, ako to skusate. Pouzil som vas servlet
a doplnil som tam riadok

resp.getWriter().println("Thread: " + Thread.currentThread() + "<BR>");

aby som videl, ktory thread dany request obsluzil. Ked som si vo
Firefoxe otvoril tri zalozky a do kazdej vlozil adresu testovacieho
servletu, tak sa to skutocne spravalo tak ako ste pisali... vo
vsetkych troch zalozkach som videl rovnaky thread. Avsak ked som
zaroven s Firefoxom otvoril aj Internet Explorer a tam skusil rovnaku
adresu, tak tento request uz bol obsluzeny dalsim threadom. Ked som
skusal iba Internet Explorer a dve zalozky, tak kazdy request bol tiez
obsluzeny vo vlastnom vlakne. Vinnika by som teda nehladal v serveri,
ale skor v klientovi (v mojom pripade vo Firefoxe).

Ako ste to testovali vy?

-Peter Stibrany



On Sat, Jun 14, 2008 at 3:06 PM, bardolf * <[EMAIL PROTECTED]> wrote:
> Dobry den,
> zkusim svou otazku reformulovat. Mame jen jednu instanci servletu v 
> kontejneru a s kazdym prichozim requestem se vytvori/vezme z poolu thread. 
> Prijdou-li soucasne 2 requesty na jeden servlet, vytvori se 2 thready a oba 
> thready volaji metody instance servletu. SingleThreadModel (nyni deprecated) 
> zajisti to, ze 2 thready nikdy nebudou volat soubezne metodu servletu.
>
> Muj pokus (priklad na vyse uvedenych strankach) mel smerovat k tomu, aby se  
> s vice prichozima requestama vytvorilo vice threadu a ty volaly soucasne 
> metody instance servletu. Bohuzel se mi pokus chova presne tak, ze jsou 
> requesty obsluhovany "pekne" sekvencne a cekaji na sebe.
>
> Diky B.
>
> import java.io.IOException;
> import javax.servlet.*;
> import javax.servlet.http.*;
>
> public class NewServlet extends HttpServlet {
>    private int counter = 0;
>
>    public void doGet(HttpServletRequest req, HttpServletResponse resp)  
> throws ServletException, IOException {
>        doPost(req, resp);
>    }
>
>    public void doPost(HttpServletRequest req, HttpServletResponse resp)
>            throws ServletException, IOException {
>        resp.getWriter().println("<HTML><BODY>");
>        resp.getWriter().println(this + ": <br>");
>        for (int c = 0; c < 10; c++) {
>            long l = (long) (Math.random() * 1000);
>            resp.getWriter().println("Counter = " + counter + "(" + l + 
> "ms)<BR>");
>            try {
>                Thread.sleep(l);
>                counter++;
>            } catch (InterruptedException exc) {
>            }
>        }
>        resp.getWriter().println("</BODY></HTML>");
>    }
> }
>

Odpovedet emailem