有关单例模式赋值失败的问题

今天在使用单例模式赋值时,出现了赋值失败的问题:

User user=new Gson().fromJson(u, User.class);
Test.getInstance().user=user;

第二句得到为null

Test.class

public class Test {
    private static Test test;
    public User user;
    public String cookie="";


    private Test(){}

    public static Test getInstance() {
        if (test == null)
            return new Test();
        else
            return test;
    }
}


以前我也这样用过,但是没有出现赋值失败的情况,上述为懒汉模式,当我把懒汉改为饿汉时赋值成功,或者懒汉中对user实例化,也能赋值成功。

暂时不懂赋值失败的原因,记录一下这个BUG。


更新

——————————————————————————————


应该是与懒汉模式的缺陷有关,没有加锁,可能出现了同时读写的操作

猜你喜欢

转载自blog.csdn.net/yforyoung/article/details/80848550