当我阅读《Head First Servlet and JSP》时,它们说实例变量是非线程安全的。
我不太理解这个说法。例如:我有一个叫做ActionServlet.java
的servlet。每次,每个用户的请求发送到服务器时,容器将创建一个新的线程并创建新的ActionServlet
实例。
ActionServlet
可能具有以下结构:
public class ActionServlet extends HttpServlet {
// example of instance variable
Instance variable;
public void processRequest(HttpServletRequest request, HttpServletResponse response) {
// process something relating to instance variable
}
}
因此,由于所有这些线程都为
ActionServlet
创建一个新的类实例,所以我在这里没有看到任何问题。因为这些线程的实例是相互分离的。请找出在多线程环境中使用实例变量时的问题所在。
谢谢 :)