A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Student{
  private int age;
  private static Student s=new Student;
  private Student(){}
  public static getStudent();
{
  return s;
}
public void setAge(){
   this.age=age;
   }
public int getAge(){
   return age;
}     //  饿汉式



class Single{
private static Single s=null;
private Single(){
}
publuic static SinglegetInstance(){
   if(s==nul)      
   s=new Single();               懒汉式 怎么解决 线程的问题???????
   return s;
}
}//懒汉式
}

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 鼓励一下!

查看全部评分

5 个回复

倒序浏览
黑马网友  发表于 2011-9-16 00:06:08
沙发
if(s==null)
{
        synchronized(Single.class)//只允许一个Single类进入
        {
                if(s==null)
                        s=new person();
}
}

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-16 19:47:13
藤椅
是线程的并发问题么?还是说怎么让线程来运行它?
回复 使用道具 举报
黑马网友  发表于 2011-9-16 21:37:10
板凳
觉得杜桂发同学说的好像可以
publuic static SinglegetInstance(){
synchronized(Single.class)
{
   if(s==nul)      
   s=new Single();      
}     
  return s;
}
这样应该就可以了
回复 使用道具 举报
class Single
{
        private static Single s = null;
        private Single(){}

        public static Single getInstance()
        {
                 //使用双重if判断,减少判断的次数,提高懒汉式的效率。
                if(s==null)  
                {
                        synchronized(Single.class)
                        {
                                if(s==null)
                                        s = new Single();
                        }
                }
                return s;
        }
}
[ 本帖最后由 李星宇 于 2011-09-17  08:27 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-9-17 10:25:37
地板
刚开始双重if语句没看懂,忘了考虑效率问题了,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马