单例模式

简介

确保整个服务一个对象只被初始化一次

 

懒汉模式:调用方法时候才初始化

复制代码
public class LazyMode {

    private LazyMode() {

    }

    private static volatile LazyMode hungryMode;

    public static LazyMode getInstance() {
        if (hungryMode == null) {
            synchronized (LazyMode.class) {
                if (hungryMode == null) {
                    hungryMode = new LazyMode();
                }
            }
        }
        return hungryMode;
    }
}
复制代码

 

 

饿汉模式:容器初始化时候就已经初始化

复制代码
public class HungerMode {

    private HungerMode() {
    }

    private static final HungerMode fullMode = new HungerMode();

    public static HungerMode getInstance() {
        return fullMode;
    }
}
复制代码

 

 

枚举实现单例

 

复制代码
public enum EnumMode {
    SINGLE;
    private ThreadPoolExecutor threadPoolExecutor;

    EnumMode() {
        threadPoolExecutor = new ThreadPoolExecutor(5, 5, 100, TimeUnit.SECONDS, new LinkedBlockingDeque());
    }

    public void startTask(Runnable runnable) {
        threadPoolExecutor.execute(runnable);
    }
}
复制代码

 

posted on   周公  阅读(13)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-03-06 String,StringBuffer,StringBuilder的区别与共同点

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示