gpt4 book ai didi

懒汉式+同步方法的单例

转载 作者:知者 更新时间:2024-03-13 02:25:42 25 4
gpt4 key购买 nike

一 点睛

懒汉式的单例可以保证实例的懒加载,但无法保证实例的唯一性,在多线程情况下,单例中的实例又称为共享资源(数据),当多个线程对其访问使用时,需要保证数据的同步性,对懒汉式的单例增加同步约束,就保证实例的唯一性。

二 代码

package singleton.singleton1;

// final 不允许继承
public final class Singleton {
    // 实例变量
    private byte[] data = new byte[1024];
    private static Singleton instance = null;

    private Singleton() {
    }

    // 向 getInstance 方法加入同步控制,每次只能有一个线程能进入
    public static synchronized Singleton getInstance() {
        if (null == instance) {
            instance = new Singleton();
        }
        return instance;
    }
}

三 说明

采用懒汉式+数据同步的方式既能满足了懒加载又能百分百地保证 instance 实例的唯一性,但是 synchronized 关键字天生的排他性导致了 getInstance 方法只能在同一时刻被一个线程访问,性能低下。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com