JAVA实现单例模式
2016-07-24 20:42
591 查看
<span style="font-size:14px;">public class Singleton { private Singleton(){} private static Singleton instance=null; public static synchronized Singleton getInstance(){ if(instance == null) instance=new Singleton(); return instance; } } </span>
但是这种方式在多线程模式下不安全。加入线程A执行完if语句后暂停,线程B执行后new了一个实例,线程A重新启动后又会new一个实例。
下面是多线程安全的方式:
public class Singleton{
private Singleton(){}
private static Singleton instance=null;
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance==null){
instance = new Singleton();
}
}
}
return instance;
}
}
相关文章推荐
- Java 不用数组打印杨辉三角
- 坦克大战_我方坦克发射子弹
- Java Exchange企业邮件服务器 发Email
- Java方法的值传递机制
- eclipse添加安卓源码
- JavaSE学习笔记之-----数组
- Java---设计模式(单例变形)多例
- Struts1.3——DispatchAction、DynamicForm和全局跳转
- Java servlet上传文件(照片视频)
- 使用jersey上传图片到图片服务器
- 反转链表
- Java 集合类(容器)
- Java 之 线程的生命周期(二)
- java 读写excel文件
- spring boot 拦截器
- spring,maven,dubbo配置
- Java基础知识强化之多线程笔记07:同步、异步、阻塞式、非阻塞式 的联系与区别
- Java设计模式:代理模式
- spring-mybatis
- JavaSE基础--构造函数