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 }

转载于:https://www.cnblogs.com/miaoyf/p/4064045.html

Java单例模式实现(线程安全)相关推荐

  1. java单例模式之线程安全问题

    单例的目的是为了保证运行时Singleton类只有唯一的一个实例,用于一些较大开销的操作. 饿汉式(没有线程安全问题): ' 由于使用static关键字进行了修饰,只能获取到一个对象,从而达到了单例, ...

  2. JAVA设计模式-单例模式(Singleton)线程安全与效率

    一,前言 单例模式详细大家都已经非常熟悉了,在文章单例模式的八种写法比较中,对单例模式的概念以及使用场景都做了很不错的说明.请在阅读本文之前,阅读一下这篇文章,因为本文就是按照这篇文章中的八种单例模式 ...

  3. Java 单例模式探讨

    以下是我再次研究单例(Java 单例模式缺点)时在网上收集的资料,相信你们看完就对单例完全掌握了 Java单例模式应该是看起来以及用起来简单的一种设计模式,但是就实现方式以及原理来说,也并不浅显哦. ...

  4. Java单例模式优化写法

    转载自 http://blog.csdn.net/diweikang/article/details/51354982 Java单例模式优化写法 方法一:推荐 [java] view plain co ...

  5. Java单例模式的几种实现方式

    Java单例模式的几种实现方式 在Java 中,单例类只能有一个实例,必须创建自己的唯一实例,单例类必须给所有其他对象提供这一实例.Java 单例模式有很多种实现方式,在这里给大家介绍单例模式其中的几 ...

  6. Java 单例模式:懒加载(延迟加载)和即时加载

    Java 单例模式:懒加载(延迟加载)和即时加载 引言 在开发中,如果某个实例的创建需要消耗很多系统资源,那么我们通常会使用惰性加载机制(或懒加载.延时加载),也就是说只有当使用到这个实例的时候才会创 ...

  7. Java单例模式:为什么我强烈推荐你用枚举来实现单例模式

    写在前面--原作的这篇文章真的写的非常的简洁,逻辑清晰,将Java单例模式的各种写法写的非常清楚,并介绍了用枚举实现单例的最佳实践. 单例模式简介 单例模式是 Java 中最简单,也是最基础,最常用的 ...

  8. 【深入】java 单例模式

    关于单例模式的文章,其实网上早就已经泛滥了.但一个小小的单例,里面却是有着许多的变化.网上的文章大多也是提到了其中的一个或几个点,很少有比较全面且脉络清晰的文章,于是,我便萌生了写这篇文章的念头.企图 ...

  9. java单例模式 三种_三种java单例模式概述

    在java语言的应用程序中,一个类Class只有一个实例存在,这是由java单例模式实现的.Java单例模式是一种常用的软件设计模式,java单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种.下 ...

  10. 什么是java单例模式?

    关于java单例模式的文章早已是非常多了,本文是对我个人过往学习java,理解及应用java单例模式的一个总结.此文内容涉及java单例模式的基本概念,以及什单例模式的优缺点,希望对大家有所帮助. 什 ...

最新文章

  1. 02.规划过程组表格-需求管理计划
  2. SVM+HOG:从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本
  3. mysql 触发器 运算符_mysql三元运算,上下连表,视图,触发器,存储过程,事务等不常用方法...
  4. 一场关于动态化开发实践的技术探讨
  5. 解决python中TypeError: not enough arguments for format stringj
  6. CentOS网络配置与重启方法
  7. TCP/IP模型及OSI七层参考模型各层的功能和主要协议
  8. Halcon 《机器视觉算法及应用》十例(其四)
  9. R语言_决策树rpart中的cp值
  10. 3ds Max 文件修改版本工具
  11. 新浪微博批量删除微博的方法
  12. 计算机启动显示不正确的分区表,电脑开机黑屏提示无效的分区表如何解决_电脑开不了机显示无效的分区表如何处理...
  13. php 屏蔽deprecated,php7.2.8 Deprecated错误不能隐藏处理
  14. Day07(续)Java方法讲解
  15. 替代满足、稀缺冲动、从众效应、思考快与慢就不怕退货吗?
  16. ANSYS - 表格加载方法
  17. java单元测试异步不进去方法_java单元测试之如何实现异步接口的测试案例
  18. Apache Ambari 简介
  19. 跑步感到痛苦,试试超慢跑
  20. 【漫画,Java微服务实践百度网盘

热门文章

  1. php实现弱类型,PHP内核探索:弱类型变量的实现
  2. python文件和数据的格式化_Python文件和数据格式化(教程)
  3. 转︱机器学习算法线上部署方法
  4. [linux] redhat 7配置路由的方法
  5. 「镁客·请讲」Site24×7李飞:云服务是大势所趋,云监控生意又要怎么做?...
  6. [记录] Ubuntu 配置Apache虚拟站点
  7. eclipse下使用hibernate tools实现hibernate逆向工程
  8. 【Swift学习】Swift编程之旅---析构方法(十九)
  9. 私有属性的另类访问方式
  10. hdoj_1711_Number Sequence