请教一个关于并发的问题!

07-08-24 blackcat1234

public class a extends b{

int sum = 0;

public int getSum(String sql){

sum = this.jdbcCommonsDAO.find(sql).size();

}

public String getSql(String sql){

return "123"+sql+"456";

}

}

请问上面的这2个方法会存在并发的问题吗?此类是单例类

banq
2007-08-26 15:24

你的sum结果在多用户并发情况下将出现混乱。

将sum转到getSum中作为方法变量就可以。

不要随意使用类字段,特别是单例情况下。这实际就将你的类变成一个有状态的类。这点特别在Spring之类编程中尤其注意。

blackcat1234
2007-08-27 13:11

老大那第一个方法没问题吧?

banq
2007-08-28 17:18

晕,我说的就是第一个方法有问题。

blackcat1234
2007-08-29 10:04

呵呵 看走眼了~~不好意思啦 第2个没问题吗? 在第2个方法里2个对象同事传了1个字符串近来 是各自返回自己的值吗?

2Go 1 2 下一页