博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程开发之--设计模式(4)
阅读量:5957 次
发布时间:2019-06-19

本文共 863 字,大约阅读时间需要 2 分钟。

package com.lfy.SingletonMode;/** * 3、单例模式之懒汉模式(线程安全)--双重校验锁 * @author lfy * @since 2018/06/03 * @see   这方式是线程安全的,测试看TestWithMultiThreading.java。
* 引入情景:在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; }}

 

转载于:https://www.cnblogs.com/ZeroMZ/p/9281965.html

你可能感兴趣的文章
encodeURIcomponent编码和ASP.NET之间编码转换
查看>>
实验三 区域四连通填充算法
查看>>
关闭selinux服务
查看>>
centos中安装、升级git
查看>>
单元测试基本路径覆盖法(转)
查看>>
十三、栅栏CyclicBarrier
查看>>
简单搭配(Collocation)隐私声明
查看>>
2013编程之美资格赛【传话游戏】
查看>>
关于Dictionary的线程安全问题
查看>>
在python中单线程,多线程,多进程对CPU的利用率实测以及GIL原理分析
查看>>
数据类型与变量
查看>>
CentOS6.5+mysql5.1源码安装过程
查看>>
Js 笔记
查看>>
C++: find()函数的注意事项
查看>>
js的事件学习笔记
查看>>
leetcode 【 Add Two Numbers 】 python 实现
查看>>
Android接收系统广播
查看>>
将网络中的图片存为NSData并保存到sqlite的BLOB字段中
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
iOS用三种途径实现一方法有多个返回值
查看>>