黑马程序员技术交流社区

标题: 懒汉单例中,如果getInstance函数上加锁 [打印本页]

作者: ysdolls    时间: 2014-8-14 19:09
标题: 懒汉单例中,如果getInstance函数上加锁
本帖最后由 ysdolls 于 2014-8-14 19:20 编辑

懒汉单例中,如果getInstance函数上加锁的话 可以运行
不过函数上synchronized的锁不是this吗? 单例中还没有对象哪里来的this
编译运行都能通过,请问这个this是谁?
  1. package com.ys.enumDemo.d11;

  2. public class SingleClass {

  3.         private static SingleClass s = null;
  4.         private SingleClass(){}
  5.         public  synchronized static SingleClass getInstance(){
  6.                 if (s==null)
  7.                         s=new SingleClass();
  8.                 return s;
  9.         }
  10.         
  11. }
复制代码

作者: ysdolls    时间: 2014-8-14 19:20
是Single.class
....讲过 忘了
作者: 215041631    时间: 2014-8-14 22:08
静态方法的锁是所属类的CLASS对象
作者: 李文方    时间: 2014-8-15 10:52
静态的锁是这个类的字节码
作者: 梵天的梦    时间: 2014-9-11 23:15
原来是这样的啊...




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2