老师说饿汉模式是线程安全的,为什么没有用synchronized 关键词修饰?

来源:3-1 “饿汉式” pk “懒汉式”

Coder编程

2016-07-29 20:20

采用synchronized  关键词修饰与不采用synchronized  关键词修饰有什么区别?

写回答 关注

3回答

  • leowei
    2016-11-03 16:05:32

    thread 1和thead2 对于 条件判断 ,有可能都判定if(instance==null)为真!,这样就会生成两个对象

  • leowei
    2016-11-03 16:03:35

    Cphantom 说的准确!

  • 0x0wh04m1
    2016-08-19 02:44:35

    因为这个类在加载的时候就实例化了,就算thread1和thread2同时获取它,取到的是类加载时实例化的那个变量的值,所以说是线程安全的;而懒汉式线程不安全,因为有可能thread1在if(instance==null)判断为真时进入了if体里但又没开始实例化,而这时thread2也进来了,最终就会有2个实例了。

    慕后端244... 回复sd1700...

    真正debug起来你就能体会到

    2018-06-01 09:49:51

    共 4 条回复 >

模式的秘密---单例模式

单例模式是在Java中最重要模式之一,让我们揭开单例模式神秘面纱

74409 学习 · 108 问题

查看课程

相似问题