西夏一品堂 2010-08-06 08:21 采纳率: 0%
浏览 199
已采纳

请问大家这个servlet是不是线程安全的,为什么。

package com.hqit.action;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ThreadServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
int sum = 1;
try
{
Thread.sleep(2000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
sum = sum + 10;
try
{
Thread.sleep(2000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
sum = sum + 100;
try
{
Thread.sleep(2000);
} catch (InterruptedException e)
{
e.printStackTrace();
}
sum = sum + 1000;
System.out.println(sum);
resp.sendRedirect("show.jsp");
}
}

忘大家说说原因,谢谢。。。

  • 写回答

4条回答 默认 最新

  • wt8414 2010-08-06 10:19
    关注

    [color=red]protected void doGet(HttpServletRequest req, HttpServletResponse resp)[/color]
    throws ServletException, IOException
    {
    [color=red]int sum = 1; [/color]

    sum变量在方法体内部,属于本地线程,当有多线程请求此Servlet时每个线程都会有此变量,所以不存在线程安全问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?