日期:2014-05-18  浏览次数:20657 次

急 servletcontext问题
jdk5.0   update6     +   tomcat5.0+eclipse3.2下:


ServletContext   sc=getServletContext();

long   ordId=(Long)sc.getAttribute( "id ");

    log.debug( "得到的ordId: "+ordId);
      if(++ordId> 99999)
              ordId=0;
    sc.setAttribute( "id ",   ordId);

多次调用以上代码,   出现

得到的ordId:1
得到的ordId:2
得到的ordId:3
.
.
.
.
.
.
得到的ordId:50
得到的ordId:51
得到的ordId:25
得到的ordId:26
得到的ordId:52
得到的ordId:53
得到的ordId:54

好像多出了25,26,搞了好长时间也不知道什么问题,   这个问题隔一段时间会出现一次,   哪位大哥救我一下,感激不尽!

------解决方案--------------------
怎么调用以上代码的,
多线程的情况下会有问题的,
long ordId=(Long)sc.getAttribute( "id ");
...
sc.setAttribute( "id ", ordId);

读写操作并不在同一个原子操作块中
------解决方案--------------------
肯定因爲多綫程引起的