Java 多线程安全 单例
来源:互联网 发布:梅西2016年个人数据 编辑:程序博客网 时间:2024/05/17 18:26
//非线程安全
这种处理方式在单线程的模式下可以很好的运行;但是在多线程模式下,可能产生问题。如果第一个线程发现成员变量为null,准备创建对象;这是第二个线程同时也发现成员变量为null,也会创建新对象。这就会造成在一个JVM中有多个单例类型的实例。如果这个单例类型的成员变量在运行过程中变化,会造成多个单例类型实例的不一致,产生一些很奇怪的现象。例如,某服务进程通过检查单例对象的某个属性来停止多个线程服务,如果存在多个单例对象的实例,就会造成部分线程服务停止,部分线程服务不能停止的情况
public class TestService{ private static TestService instance = null;
private TestService() {
}
public static TestService getInstance() { if (instance == null) { instance=new TestService(); } return instance; } }
//线程安全
这种处理方式虽然引入了同步代码,但是因为这段同步代码只会在最开始的时候执行一次或多次,所以对整个系统的性能不会有影响。
public class TestService{ private static TestService instance = null;
private TestService() {
}
private static synchronized void syncInit() { if (instance == null) { instance = new TestService(); } }
public static TestService getInstance() { if (instance == null) { syncInit(); } return instance; } }
- Java 多线程安全 单例
- 单例的多线程安全
- 【Java多线程】之八:单例模式的线程安全
- java线程安全之单例&多线程(十一)
- Java多线程 线程安全一本通,线程安全,为什么要用多线程,如何同步,单例模式线程安全
- java 单例 多线程
- Java单例多线程
- 单例模式和多线程安全
- 单例模式和多线程安全
- 多线程单例模式的安全实现
- 一种多线程安全的单例模式
- 单例模式的多线程安全
- 多线程安全(二)之单例模式
- [Java]Java的静态构造函数 多线程下安全的单例模式
- java 线程安全单例
- 单例模式java中的几种写法和确保多线程下安全
- java多线程单例模式
- java单例 同步 多线程
- Ant 无法找到或识别 flexTasks 的解决方案
- 位图排序
- Linux netstat命令详解
- winform c# 自动更新
- 用busybox制作并配置根文件系统
- Java 多线程安全 单例
- C++与C#对比学习:预编译与编译机制(二)
- android调用系统功能
- Spring整合iBatis之三:从Spring角度看两框架整合(包括事务处理)
- Android ListViewy优化
- 前台jsp传参到后台portlet、以及两个portlet之间共享参数
- 初夏的伤感独特个性日志分享:忧伤,只是一个时代的一种心情
- 新型打开文件并将内容显示到编辑框的对话框
- Visual Unit 简明教程