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>");
}
}