采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
是因为懒汉模式下,这个getInstance()方法可能会被多个线程调用多次, 从而使 new SingletonExample1()被调用多次。
而饿汉模式下,静态内部成员变量instance只在类加载的时候被调用一次,从而new SingletonExample1()只被调用一次。
你好,饿汉模式下,直接通过static静态变量直接初始化,jvm可以保证只做一次。
而当前这种懒汉模式,可能会遇到多个线程同时进行初始化,这时如果两个不同的线程同时走到 if(instance == null) 时会都判断成功,就会初始化两次。因此当前这种懒汉模式有一定的概率初始化两次
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.2k 15
3.6k 12
1.2k 12