单例模式

单例模式

单例模式最优方案: 线程安全,并且效率高,代码如下: 
  1. public class Singleton {
  2. //使用volatile保证了多线程访问时instance变量的可见性
  3. private volatile static Singleton instance;
  4. // 定义一个私有构造方法
  5. private Singleton() {
  6. }
  7. public static Singleton getInstance() {
  8. // 对象实例化时与否判断(不使用同步代码块,instance不等于null时,直接返回对象,提高运行效率)
  9. if (instance == null) {
  10. //同步代码块(对象未初始化时,使用同步代码块,保证多线程访问时对象在第一次创建后,不再重复被创建)
  11. synchronized (Singleton.class) {
  12. //未初始化,则初始instance变量
  13. if (instance == null) {
  14. instance = new Singleton();
  15. }
  16. }
  17. }
  18. return instance;
  19. }
  20. }

 




posted on 2017-10-20 17:01  ..小树苗  阅读(106)  评论(0编辑  收藏  举报

导航