搜索
写经验 领红包
 > 社会

单例模式懒汉式怎么保证线程安全(单例模式懒汉式和饿汉式)

导语:单例模式-懒汉式

单例模式懒汉式怎么保证线程安全(单例模式懒汉式和饿汉式)

懒汉式:

1) 起到了Lazy Loading的效果,但是只能在单线程下使用。

2) 如果在多线程下,一个线程进入了if (singleton == null)判断语句块,还未来得及 往下执行,另一个线程也通过了这个判断语句,这时便会产生多个实例。所以 在多线程环境下不可使用这种方式

代码实现:

public class SingletonTest03 {    public static void main(String[] args) {        Singleton singleton1 = Singleton.getInstance();        Singleton singleton2 = Singleton.getInstance();        System.out.println(singleton1 == singleton2);        System.out.println(&34;+singleton1.hashCode());        System.out.println(&34;+singleton2.hashCode());    }}class Singleton{    private Singleton(){ }    private static Singleton instance;    public static Singleton getInstance(){        if(null == instance){            instance = new Singleton();        }        return instance;    }}

本文内容由小舻整理编辑!