zoukankan      html  css  js  c++  java
  • Java单例模式实现(线程安全)

     1 package com.javaee.corejava;
     2 /**
     3  * 线程安全的单例模式
     4  * @author miaoyf
     5  *
     6  */
     7 public class Singleton {
     8     /**
     9      * 私有静态常量单例对象
    10      * volatile:
    11      * 用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),
    12      * 线程中对A的访问其实访问的是B。
    13      * 只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。
    14      * volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)
    15      */
    16     private static volatile Singleton instance=null;
    17     /**
    18      * 私有化构造函数,防止通过构造函数被初始化
    19      */
    20     private Singleton(){
    21         
    22     }
    23     /**
    24      * 返回单例实例
    25      */
    26     public static Singleton getInstance(){
    27         if(instance==null){
    28             synchronized (Singleton.class) {
    29                 if(instance==null){
    30                     instance=new Singleton();
    31                 }
    32             }
    33         }
    34         return instance;
    35     }
    36 }
  • 相关阅读:
    js获取粘贴内容
    axios导出 exer
    Mac + IDEA + JRebel破解方法.
    富有魅力的git stash
    java web 下实现文件下载
    java23中设计模式
    高并发量网站解决方案
    Linux下拆分大文件
    Linux下jvm、tomcat、mysql、log4j优化配置
    cas单点登出
  • 原文地址:https://www.cnblogs.com/miaoyf/p/4064045.html
Copyright © 2011-2022 走看看