复制代码

【07】单例VS多线程

 还是套路问题,一种思想而已,两种方式

  1 dubble check instance

  2 static inner class

  两次检测加类锁

  静态内部类,其实就是饿汉模式,直接给你就好了

 

package Concurrency;

class dubbleCheck{
    private static dubbleCheck ds ;
    public dubbleCheck getInstance(){
        if(ds == null){
            try{
                Thread.sleep(50);

                synchronized (dubbleCheck.class){
                    if(ds==null){
                        ds = new dubbleCheck();
                    }
                }

            }catch (InterruptedException e){
                e.printStackTrace();
            }
        }
        return ds;
    }
    protected dubbleCheck(){
    }
}
class InnerSigleton {
    private static class Sigleton{
        private static InnerSigleton is = new InnerSigleton();
    }
    public static InnerSigleton getInstance(){
        return  Sigleton.is;
    }
}
View Code

 

posted @ 2018-12-01 16:13  pg633  阅读(150)  评论(0编辑  收藏  举报