[Java]Java的静态构造函数 多线程下安全的单例模式
来源:互联网 发布:阿里巴巴旗下所有软件 编辑:程序博客网 时间:2024/05/17 14:20
我也在看书的时候 看到C#的静态构造方法 也在想JAVA有没有同样的东西。
先来看一看为什么C#的静态构造方法为什么会存在
我们平常普通的做法是
但是,这样做是不能防止多线程同时调用的。
例如,有A线程,B线程同时初始化这个类
判断的时候,都能初始化到该类的对象。这就违背了单例模式的初衷。
所以,改进的方法可以是
此实例是跟该类在加载的时候就初始化出来了。
这样就有效地防止了多线程下的单例问题
先来看一看为什么C#的静态构造方法为什么会存在
我们平常普通的做法是
public class Teacher {private static Teacher mTeacher;private Teacher() {}public static Teacher getInstance() {if (mTeacher == null) {mTeacher = new Teacher();}return mTeacher;}}
但是,这样做是不能防止多线程同时调用的。
例如,有A线程,B线程同时初始化这个类
判断的时候,都能初始化到该类的对象。这就违背了单例模式的初衷。
所以,改进的方法可以是
public class Student {private static Student mStudent = new Student();private Student() {}public static Student getInstance() {return mStudent;}}
此实例是跟该类在加载的时候就初始化出来了。
这样就有效地防止了多线程下的单例问题
0 0
- [Java]Java的静态构造函数 多线程下安全的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- Java 多线程下的单例模式
- 【Java】线程安全的单例模式----静态内部类
- 【Java多线程】之八:单例模式的线程安全
- JAVA多线程 <三>单例模式下的多线程问题
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- Java下的单例模式 静态导入实现
- Java 多线程下的单例模式的设计
- 单例模式强烈推荐的方式:利用静态构造函数
- java 中多线程下的单例模式
- 一个从化工行业转行iOS开发的程序猿
- [Unix下C/C++开发] unix编程书籍推荐
- 数据结构:图的实现--邻接矩阵
- 黑马程序员——Java面向对象(五)
- 关于数组的引用和引用的数组
- [Java]Java的静态构造函数 多线程下安全的单例模式
- 找数组中只出现一次的元素
- 关于Java中按值传递和按引用传递的问题详解
- 设计模式C++实现二 ——策略模式
- HDU 3483 A Very Simple Problem 矩阵构造
- 关于string 比较和cmp函数
- membership(2)---注册篇
- 数据结构:图的实现--邻接表
- Jsp读取数据库返回json数据,Android客户端接收json