方法保证了多线程并发下的线程安全性。
这里在声明变量时使用了volatile关键字来保证其线程间的可见性;在同步代码块中使用二次检查,以保证其不被重复实例化。集合其二者,这种实现方式既保证了其高效性,也保证了其线程安全性。

 package com.test;

 public class MyObject{
volatile private static MyObject instance; private MyObject() {
} public static MyObject getInstance() { // 对获取实例的方法进行同步
try {
if (instance == null) {
synchronized (MyObject.class) {
if (instance == null) {
instance = new MyObject();
}
}
System.out.println(instance);
}
} catch (Exception e) {
e.printStackTrace();
}
return instance;
}
}

最新文章

  1. Xamarin.Android之Fragment Walkthrough
  2. ORM框架示例及查询测试,上首页修改版(11种框架)
  3. edit界面初始化加默认值
  4. 关于float高度塌陷问题
  5. [c++]默认参数
  6. 如何在centos 6.7 上安装oracle 11gR2
  7. MSDN for VS2012 的安装
  8. js判断手机浏览器并跳转到手机网站
  9. margin:0 auto;不能居中的原因
  10. [Unity菜鸟] Unity Web Player 相关问题 (待完善)
  11. PHP 错误处理
  12. POJ 3923 Ugly Windows(——考察思维缜密性的模拟题)
  13. 转:Java中Scanner类和BufferReader类之间的区别
  14. [蓝桥杯]ALGO-97.算法训练_排序
  15. Intel P6以来核心架构及对应型号、芯片组一览表
  16. docker探索-windows10 docker 使用 mysql(二)
  17. asp.net WebService的一个简单示例
  18. [2016北京集训试题8]连在一起的幻想乡[dp+无向图计数]
  19. 使用chardet判断编码方式
  20. (linux shell)第二章--命令之乐(一)

热门文章

  1. 安卓edittext实现输入数字限制条件的效果
  2. PostMan的在线安装和简单使用
  3. 发现一个直播录制工具you-get
  4. centos7.5更换docker-ce镜像源
  5. opengl加载多个3ds模型失败记
  6. Android--数据库数据显示至屏幕
  7. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
  8. hibernate uuid
  9. C 语言学习 3
  10. 在eclipse中添加android ADT