【STRUTS 线程共享冲突】actionform中的数据似被共享了!救命啊~~~~~~~~
多人同时操作,有写文件的动作,在action中取到毫秒级的时间戳,然后生成临时文件名,从actionform中取数据输出到文件.
当两个人同时操作的时候问题出来了,生成了两个文件,但是里面的内容是一样的!!!
难道actionform是共享的!!!不大可能吧,那我的数据不都要混乱了!!!我会对struts失望的呀
大哥们救命啊,大概会是什么地方出错呢?搞不懂啊!
问题点数:100、回复次数:8Top
1 楼fqcheng(绿奥)回复于 2005-01-26 11:09:19 得分 5
关注Top
2 楼lvyuanfang()回复于 2005-01-26 11:10:42 得分 5
upTop
3 楼singedcat(以夢為馬)回复于 2005-01-26 11:54:54 得分 5
upTop
4 楼sjg008(基本靠UP)回复于 2005-01-26 12:06:44 得分 5
upTop
5 楼drugon(更高,更远,更强)回复于 2005-01-26 12:07:27 得分 80
楼主可以有用这种方法来解决。
以前一般只是对一个类中的某个方法进行同步,而不能对一个类进行同步,那么要实现一个类的同步怎么做呢,我们利用类的访问属性这一点。假设A和B两个类,我们要对A类进行同步,比如一个人用A类中的set方法的时候,其它人就不能用A类的get方法。这个时候我们把A类作为B类的一个成员变量,我们只要在B类里面对B类的方法进行同步就可以了,因为对B 类的方法同步的时候相当于就是对A类进和同步了,实现了我们所要的功能。
估计楼主就是因为没有同步才会造成这样的情况。把那些写文件的方法全都同步起来。Top
6 楼snow_jin(晓灯(400))回复于 2005-01-26 12:54:06 得分 0
呜呜,悲惨啊,突然发现我的程序n多bug。居然连同时登陆都会出错!
我用的是普通的jdbc连接,没有用数据库连接池之类的。
在用户同时登录时,可能发生a用户的连接被同时登录的b用户断掉的超级大bug!
晕~~~~~~~~
正在试着用保留字synchronized ,我确实没有考虑同步的问题.
大家继续给点建议啊!Top
7 楼snow_jin(晓灯(400))回复于 2005-01-26 14:06:56 得分 0
同时登录的问题使用了同步后conn算是安全了。
可是actionForm中的数据怎么会被共享了呢??
期待高手指点迷津Top
8 楼snow_jin(晓灯(400))回复于 2005-01-26 14:11:46 得分 0
还有,是不是用到conn的时候是不是一定要用同步呢??
有没有什么其他的办法解决Top




