文档章节

java 单例

zvc888
 zvc888
发布于 2016/07/15 18:18
字数 45
阅读 18
收藏 5

/**
 * 线程安全  并且效率高
 *
 */
public class SingletonTest {
    private static SingletonTest instance;

    private SingletonTest() {
    }

    public static SingletonTest getIstance() {
        if (instance == null) {
            synchronized (SingletonTest.class) {
                if (instance == null) {
                    instance = new SingletonTest();
                }
            }
        }
        return instance;
    }
}

© 著作权归作者所有

共有 人打赏支持
上一篇: netty参数配置
下一篇: java 优雅退出
zvc888
粉丝 5
博文 107
码字总数 17062
作品 0
深圳
程序员
私信 提问
加载中

评论(3)

zvc888
zvc888

引用来自“小馍馍”的评论

我记得不是哦. 我下面这个写法才是执行效率最高的..你这个会有锁, 导致线程阻塞
public class SingletonTest{
private static class SingletonTestHandler{
public static final instance = new SingletonTest();
}
private SingletonTest(){}

public SingletonTest instance(){
return SingletonTestHandler.instance();
}
}
这样写可以保证多个线程访问不会出现问题0
小馍馍
小馍馍
我记得不是哦. 我下面这个写法才是执行效率最高的..你这个会有锁, 导致线程阻塞
public class SingletonTest{
private static class SingletonTestHandler{
public static final instance = new SingletonTest();
}
private SingletonTest(){}

public SingletonTest instance(){
return SingletonTestHandler.instance();
}
}
zvc888
zvc888
自己顶2
第三章 spring-bean之DefaultSingletonBeanRegistry(3)

前言 SingletonBeanRegistry是一个非常重要的接口,用于注册,获得,管理singleton对象。 SingletonBeanRegistry目前唯一的实现是DefaultSingletonBeanRegistry,DefaultSingletonBeanRegis...

鸟菜啊
07/18
0
0
为什么我墙裂建议大家使用枚举来实现单例。

关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的...

06/10
0
0
Java ThreadLocal的用法解析

简介 java中经常使用ThreadLocal作为处理高并发访问的可选手段,ThreadLocal并不是一个线程,而是”以线程为作用域“的一种面向对象的数据结构。其用法的也有着让人难以理解的怪异性。 代码实...

IamOkay
2014/10/25
0
0
Spring如何使用ThreadLocal解决线程安全问题

看“Spring企业应用开发实战”这本书,里面写到 Spring通过ThreadLocal将现有状态的变量(如Connection等)本地线程化,达到另一个层面是的“线程无关”,从而实现线程安全。 现在有这样一个...

乐山ing
2016/08/30
2.1K
6
10月31日云栖精选夜读 | Java性能优化的50个细节(珍藏版)

在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩...

yq传送门
10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

eureka多注册中心

eureka分区的深入讲解

miaojiangmin
12分钟前
1
0
RAM SSO功能重磅发布 —— 满足客户使用企业本地账号登录阿里云

阿里云RAM (Resource Access Management)为客户提供身份与访问控制管理服务。使用RAM,可以轻松创建并管理您的用户(比如雇员、企业开发的应用程序),并控制用户对云资源的访问权限。 对云资...

阿里云官方博客
15分钟前
0
0
Mysql 8.0 | #08004Client does not support authentication protocol requested by server

完整报错 #08004Client does not support authentication protocol requested by server; consider upgrading MySQL client 解决方法 Using the old mysql_native_password works:ALTER ......

云迹
17分钟前
0
0
kylin入门到实战

1.概述 kylin是一款开源的分布式数据分析工具,基于hadoop之上的sql查询接口,能支持超大规模的数据分析。响应时间在亚秒级别,其核心是预计算,计算结果存放在hbase中。 2.特性 可扩展超快O...

hblt-j
20分钟前
0
0
vagrant mac 安装和使用

varant 在mac上使用起来非常的方便,具体的下载步骤可以看这里https://segmentfault.com/a/1190000000264347 这里主要是记录一下配置文件 # -*- mode: ruby -*- # vi: set ft=ruby : # All V...

一千零一夜个为什么
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部