を読むHead First Servlet and JSP
と、インスタンス変数は非スレッドセーフであると書かれています。
この発言はあまり理解できません。例: という名前のサーブレットがありますActionServlet.java
。各ユーザーのリクエストがサーバーに送信されるたびに、コンテナーは新しいスレッドを作成し、新しい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
、ここでは何の問題もありません。これらのスレッドのインスタンスは互いに独立しているためです。
マルチスレッド環境でインスタンス変数を使用する場合の問題点を突き止めてください。
ありがとう :)