这是与我之前的帖子相关的姐妹问题: 满足高并发时的简单 Web 服务器
面试题是:
public class CounterServlet extends HttpServlet{
private volatile static int counter=0;
public int getCounter()
{
return counter;
}
public void service(HttpServletRequest request
HttpServletResponse response) throws IOException
{
counter++;
PrintWriter out=response.getWriter();
out.write("hello");
}
上面的代码遇到高并发会出现什么问题?我的分析是:Servlet是单例的,所以同步会有问题。它已经将计数器声明为volatile,这不会阻止问题。我建议同步服务方法?