07单例VS多线程

Posted corx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于07单例VS多线程的主要内容,如果未能解决你的问题,请参考以下文章

Spring应用中的ThreadLocal VS synchronized

python多线程

简单多线程和单例学习例一

多线程中的单例模式可能具有重复代码

基于多线程任务队列执行时间测试——泛型单例模式落地

6 单例模式及其多线程问题