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

    1. 懒汉式:线程是不安全的,若多个线程同时进入if(uniqueInstance==null)
      public class Singleton {
          private static Singleton uniqueInstance;
          private Singleton() {
          }
          public static Singleton getUniqueInstance() {
              if (uniqueInstance == null) {
                  uniqueInstance = new Singleton();
              }
              return uniqueInstance;
          }
      }
    2. 懒汉式线程安全:一个线程进入方法后,其他试图进入的线程必须等待,性能有损耗
      public static synchronized Singleton getUniqueInstance() {
          if (uniqueInstance == null) {
              uniqueInstance = new Singleton();
          }
          return uniqueInstance;
      }
    3. 双重校验锁:先判断是否已经实例化,如果没有才对实例化语句加锁,内部是if(==null)是为了防止两个线程同时进入外层的if语句块内

      public class Singleton {
          private volatile static Singleton uniqueInstance;
          private Singleton() {
          }
          public static Singleton getUniqueInstance() {
              if (uniqueInstance == null) {
                  synchronized (Singleton.class) {
                      if (uniqueInstance == null) {
                          uniqueInstance = new Singleton();
                      }
                  }
              }
              return uniqueInstance;
          }
      }
  • 相关阅读:
    02动手动脑
    动手动脑01
    千锤百炼软工6,7,8
    千锤百炼软工10.5
    千锤百炼软工10.4
    千锤百炼软工10.3
    千锤百炼软工10.2
    千锤百炼软工10.1
    千锤百炼软工9.30
    破解 webstorm
  • 原文地址:https://www.cnblogs.com/kangaroohu/p/9604779.html
Copyright © 2011-2022 走看看