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

    单例模式代码本身

    class Singleton {

        //将声明对象的工作发在全局变量中
        private static Singleton instance;
        
        //这个对象是为了在锁住这个类的时候的判断
        private static Object object = new Object();
        
        //私有化构造方法,只有本身可以创建本身
        private Singleton(){}
        
        //外部的类要创建这个类通过这个方法创建
        public static Singleton getInstance(){
            if(instance == null){
                //当对象为空的时候才进行synchronized对象
                synchronized(object){
                    //双重判断是否为空,是考虑到多线程的时候,如果
                    
    //两个线程通过了第一个null判断后,第一个线程锁定了
                    
    //object后,创建了一个对象,解锁,如果不在进行第二个null
                    
    //判断的话,第二个线程就可以继续创建第二个对象,违反了
                    
    //单例模式的单一对象的原则
                    if(instance == null){
                        instance = new Singleton();
                    }
                }
            }
             return instance;
        }
    } 

     接下来是调用的代码

    public class Test {

        public static void main(String[] args) {
            Singleton.getInstance();
        }

    } 


  • 相关阅读:
    Linux命令-tail命令
    服务器重装ip未更改,ssh连不上(WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED)
    Docker中Nginx部署go应用
    Django+gunicorn+nginx项目部署
    Django之 CVB&FVB
    Django之form校验&后台管理
    python argparse例子实践
    重新认识递归
    Django之数据库对象关系映射
    jenkins参数化构建&HTML报告
  • 原文地址:https://www.cnblogs.com/kgrdomore/p/4220124.html
Copyright © 2011-2022 走看看