zoukankan      html  css  js  c++  java
  • 多线程下的单例

    1多线程安全单例模式一(不使用同步锁).

    复制代码
     1  1 public class Singleton {
     2  2     private Singleton()
     3  3     {}
     4  4     private static Singleton singleton;
     5  5     
     6  6     public static Singleton getInstance()
     7  7     {
     8  8         if(singleton ==null)
     9  9         {
    10 10             singleton =new Singleton();
    11 11         }
    12 12         return singleton;
    13 13     }
    14 14     
    15 15 
    16 16 }View Code
    复制代码

    2.多线程安全单例模式一(使用同步锁).

    复制代码
    public class Singleton {
        private Singleton()
        {}
        private static Singleton singleton;
        //sychronized 同步
        public static synchronized Singleton getInstance()
        {
            if(singleton ==null)
            {
                singleton =new Singleton();
            }
            return singleton;
        }
        
    
    }
    复制代码

    3.多线程安全单例模式一(使用双重同步锁).

    复制代码
    public class Singleton {  
         private static Singleton instance;  
         private Singleton (){
         }   
         public static Singleton getInstance(){    //对获取实例的方法进行同步
           if (instance == null){
               synchronized(Singleton.class){
                   if (instance == null)
                       instance = new Singleton(); 
               }
           }
           return instance;
         }
         
     }
  • 相关阅读:
    Codeforces Round #409(Div.2)
    Require.js
    Javascript闭包
    修改GeoJson的网址
    获取服务器时间js代码
    JS中的call()和apply()方法
    什么是Javascript Hoisting?
    谁说 JavaScript 简单的?
    前端定时执行一个方法
    Jquery精妙的自定义事件
  • 原文地址:https://www.cnblogs.com/6zhi/p/5534764.html
Copyright © 2011-2022 走看看