读书人

一个java多线程有关问题

发布时间: 2012-04-17 15:06:33 作者: rapoo

一个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。

读书人网 >J2EE开发

热点推荐