【发布时间】:2012-02-22 10:46:12
【问题描述】:
以下程序:
public class SimpleCounter extends HttpServlet {
int counter=0;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter writer = response.getWriter();
counter++;
writer.println("accessed " + counter + " times" );
}
}
每次我访问这个 servlet 的 url 时都会打印 counter 的增量值。我读到服务器创建了这个 servlet 的一个实例,每当有这个 servlet 的请求时,一个新线程就会将此请求映射到服务器创建的特殊实例。
服务器创建的实例(请求映射到哪个线程)什么时候死掉?新请求创建的线程何时死亡?
【问题讨论】:
-
这是否与特定容器有关?有些应用程序(例如 Google App Engine)会积极回收一段时间内未收到请求的应用程序。
-
@Mike Samuel 实际上不是。但可以包含在答案/讨论中
标签: java multithreading jakarta-ee servlets persistence