【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

猜你喜欢

转载自www.cnblogs.com/corx/p/10049864.html