zoukankan      html  css  js  c++  java
  • 编程开发之--设计模式(4)

    package com.lfy.SingletonMode;
    
    /**
     * 3、单例模式之懒汉模式(线程安全)--双重校验锁
     * @author lfy
     * @since 2018/06/03
     * @see   这方式是线程安全的,测试看TestWithMultiThreading.java。<br>
     *        引入情景:在SingletonMode3的例子我们可以看到,synchronized 其实将方法内部的所有语句都已经包括了,
     *        每一个进来的线程都要单独进入同步代码块,判断实例是否存在,这就造成了性能的浪费。那么我们可以想到,其实在第一次已经创建了实例的情况下,
     *        后面再获取实例的时候,可不可以不进入这个同步代码块?
     * */
    public class SingletonMode4 {
    
        //构造器私有化
        private SingletonMode4(){
             
        }
        
        //在类的内部自己创建实例
        private static SingletonMode4 singleton = null;
     
        public static SingletonMode4 getInstance() throws Exception{
            //--双重校验锁
            if(singleton == null){
                synchronized (SingletonMode4.class){
                    if(singleton == null){
                        singleton = new SingletonMode4();
                    }
                }
            }
            return singleton;
        }
    }
  • 相关阅读:
    手机号码格式化显示javascript
    MySql存储过程与函数
    mysql连接方法
    上传文件夹或上传文件到linux
    VIM编辑器
    linux的简单命令
    CentOS虚拟机网卡配置
    MySQL的远程连接问题 错误1130
    日志备份的shell脚本
    JNA的用法
  • 原文地址:https://www.cnblogs.com/ZeroMZ/p/9281965.html
Copyright © 2011-2022 走看看