问答详情
源自:3-1 “饿汉式” pk “懒汉式”

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

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

提问者:Coder编程 2016-07-29 20:20

个回答

  • 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个实例了。