Spring:这个成员变量是否是线程安全的?

时间:2014-01-02 05:23:24

标签: java spring thread-safety

@Service    
public class InfoService {
    private Info currentInfo;

    public void initInfo(String data) {
        currentInfo = new Info(data);
    }

    //blarblar...
}

如果这不是线程安全的,我的服务方法应该更改为将“currentInfo”作为其参数。 我不想制作重复的参数代码,所以我把它作为服务的成员变量。 当然,这段代码对我很有效,但我担心这可能是线程危险。

“currentInfo”可能是线程危险吗?

1 个答案:

答案 0 :(得分:3)

初始化之后你会有这个类的单例实例,现在想象两个线程都引用了这个对象,

thread-1:设置currentInfo并开始根据它计算某些内容(我假设您在其他计算中使用它//blarblar...

thread-2:在thred-1开始使用它之后,同时thread-2重置它