当前位置: 代码迷 >> J2EE >> 一个java多线程有关问题
  详细解决方案

一个java多线程有关问题

热度:37   发布时间:2016-04-22 02:05:12.0
一个java多线程问题
我只记得大致的代码:
public TestServlet extends HttpServlet{
  private int a=1;
  doGet(request,response){
  a=a+1;
  PrintWrite out=response.getWriter();
  out.print(a);
  }
}

问:如果有A,B两人访问这个Servlet,会得到几种结果?并解析。

------解决方案--------------------
就是一个简单的多线程的问题啊。

如果A先跑完,B再跑完。那么得到的是第一种结果:2,2
如果有一个先执行:a=a+1; 另外一个再执行这句时,得到提2,3

------解决方案--------------------
Servlet是单例的,所以private int a=1 会被共享。

A和B两个人的HTML页面上的结果应该只有2种:
1)A 2 ;B 3
2)A 2 ;B 2

绝大多数情况下是1;
极其极其极其少的情况下是2。