急 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);
读写操作并不在同一个原子操作块中
------解决方案--------------------肯定因爲多綫程引起的