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

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个方法会存在并发的问题吗?此类是单例类

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

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

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

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

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

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

理论上来说,只要使用了类变量就有可能出现线程同步问题,除非这个类变量是只读的,或者只写一次(要确保写没有线程同步问题)。

如果只有这两个方法的话,没啥问题
不过继承了一些方法,多半有问题