单例设计模式之懒汉式(线程不安全)
Posted waibizi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例设计模式之懒汉式(线程不安全)相关的知识,希望对你有一定的参考价值。
package com.waibizi.demo03; /** * 优点:起到了懒加载的效果,但是只能在单线程的情况下使用 * 缺点:如果是多线程下,一个线程已经进入了if(instance==null) 但是还没来得及实例化,这时候另外一个线程也进入了if(instance==null) ,这时便会产生多个实例 * 所以在多线程的情况下不能使用这种懒汉式加载 * @author 歪鼻子 * */ @SuppressWarnings("all") public class Singleton_Pattern { public static void main(String[] args) { // TODO Auto-generated method stub Singleton test = Singleton.getInstance(); Singleton test1 = Singleton.getInstance(); System.out.println(test.hashCode()); System.out.println(test1.hashCode()); } } @SuppressWarnings("all") class Singleton{ private static Singleton instance; private Singleton() { } //提供一个静态的公有方法,当使用该方法时,才去创建instance //即懒汉式加载 public static Singleton getInstance() { if(instance==null) { System.out.println("我只初始化了这一次哦"); instance=new Singleton(); } return instance; } }
以上是关于单例设计模式之懒汉式(线程不安全)的主要内容,如果未能解决你的问题,请参考以下文章