zoukankan      html  css  js  c++  java
  • 单例模式

    1、饿汉式,线程安全,效率低

    public class SingletonTest {
        private SingletonTest() {}
        
        private static SingletonTest instance = new SingletonTest();
        
        public static SingletonTest getInstance() {
            return instance;
        }
    }

    2、饱汉式,非线程安全

    public class SingletonTest {
        private SingletonTest() {}
        
        private static SingletonTest instance;
        
        public static SingletonTest getInstance() {
            if (instance == null) {
                instance = new SingletonTest();
            }
            return instance;
        }
    }

    3、静态内部类

    public class SingletonTest {
        private static class Holder {
            private static final SingletonTest instance = new SingletonTest();
        }
        public static final SingletonTest getInstance() {
            return Holder.instance;
        }
    }

    4、双重检验

    public class SingletonTest {
        private SingletonTest() {}
        
        private static SingletonTest instance;
        
        public static SingletonTest getInstance() {
            if (instance == null) {
                synchronized (SingletonTest.class) {
                    if (instance == null) {
                        instance = new SingletonTest();
                    }
                }
                
            }
            return instance;
        }
    }
  • 相关阅读:
    【C++标准库】C++11新特性
    使用线程池
    Halcon相机硬触发采集图片
    C#之线程同步
    多线程之异常处理
    java基础 Arrays
    java基础 static关键字
    java基础 String
    c# 更新web.config
    java 基础
  • 原文地址:https://www.cnblogs.com/m2492565210/p/7231643.html
Copyright © 2011-2022 走看看