单例
来源:互联网 发布:网络加速器原理 编辑:程序博客网 时间:2024/04/30 04:06
- 单例设计模式
- 面试问题:
- 一般采用饿汉式
- 因为在多线程的时候不会出现问题
* - 懒汉式特点 实例的延迟加载
- 但在多线程时会出现安全隐患
- 加同步可决解问题
- 可加同步代码块
- 同步函数
- 用双重判断可决解效率问题
- 同步锁是 该类所属的字节码文件
/* - 单例设计模式
- 面试问题:
- 一般采用饿汉式
- 因为在多线程的时候不会出现问题
* - 懒汉式特点 实例的延迟加载
- 但在多线程时会出现安全隐患
- 加同步可决解问题
- 可加同步代码块
- 同步函数
- 用双重判断可决解效率问题
- 同步锁是 该类所属的字节码文件
*/
//饿汉式
/*
class Single{
private static final Single s=new Single();
private Single(){
}
public static Single getInstance(){
return s;
}
}
*/
//懒汉式
//在多线程调用时容易出现安全隐患
/*
class Single{
private static Single s=null;
private Single(){
}
public static Single getInstance(){
if(s==null){
s=new Single();
}
return s;
}
}
*/
//决解了安全隐患 但是出现了效率低下的问题
/*
class Single{
private static Single s=null;
private Single(){
}
public static synchronized Single getInstance(){
if(s==null){
s=new Single();
}
return s;
}
}
*/
class Single {
private static Single s = null;
private Single() {
}
public static synchronized Single getInstance() {
if (s == null) {//减少了判断锁的次数
synchronized (Single.class) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
}
public class SingleDemo {
}
0 0
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- 单例
- jQuery源码分析之jQuery.event.remove方法
- 2015-10-17
- shutdownInput
- 【二叉树遍历算法】——前/中/后序递归与非递归的实现
- linux下alias命令详解
- 单例
- 谈谈Java技术优化的相关信息
- JS获取系统时间、计算两个日期天数、比较日期大小
- Mac系统打开命令行终端及查看操作系统版本号的方法
- 同步锁
- SQL DEFAULT 约束 高级教程
- 3.3.10 使用difflib.unified_diff函数
- join方法
- 在Mac上配置Android adb命令