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();
        }

    } 


  • 相关阅读:
    Educational Codeforces Round 59 (Rated for Div. 2)E. Vasya and Binary String 区间dp
    MySQL语法大全
    D. Buy a Ticket(优先队列+dijkstra)
    Two Sets(并查集分类)
    KMP浅显易懂
    深度理解链式前向星
    快速幂(幂运算取模的logn算法)
    hdu---1950---Bridging signals解题报告(求Lis n*logn贪心+二分搜索)
    dp背包
    线段树模板
  • 原文地址:https://www.cnblogs.com/kgrdomore/p/4220124.html
Copyright © 2011-2022 走看看