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

    单例模式的五种实现写法:懒汉、饿汉、双重检验锁、静态内部类、枚举。线程安全的实现方式

      懒汉式:        

        public class Singleton {

            private static Singleton instatnce;

            private Singleton(){}

            public static synchronized Singleton getInstance(){
              if(instatnce == null)
                instatnce=new Singleton();
              return instatnce;
             }

        }

      双重检验锁: 

        public class Singleton {  

            private static Singleton instatnce;


            private Singleton(){}

            public static Singleton getInstance(){
              if(instatnce == null){
                synchronized(Singleton.class){
                  if(instatnce == null)
                    instatnce=new Singleton();
                }
              }
              return instatnce;
            }

        }

      饿汉式:

        

        public class Singleton {

          private static Singleton instatnce=new Singleton();

          private Singleton(){}

          public static Singleton getInstance(){
            return instatnce;
          }

        }

      静态内部类:

        

        public class Singleton {

          private static class SingletonHolder{
            private static final Singleton INSTANCE = new Singleton();
          }

          private Singleton(){}

          public static final Singleton getInstance(){
            return SingletonHolder.INSTANCE;
          }

        }

      枚举:

        

        public enum EasySingleton {

          INSTANCE;

        }

  • 相关阅读:
    (转)ReentrantLock与Synchronized同步区别
    (转)Java NIO框架
    (转)Apache Mina网络框架
    (转)java中Executor、ExecutorService、ThreadPoolExecutor介绍
    路由选择协议
    SYN攻击
    网络基础
    [翻译]在Django项目中添加谷歌统计(Google Analytics)
    初识Python-web框架的这两天
    June本地环境搭建
  • 原文地址:https://www.cnblogs.com/rookie404/p/5792414.html
Copyright © 2011-2022 走看看