单例设计模式

来源:互联网 发布:windows ntp配置 编辑:程序博客网 时间:2024/05/06 01:27

听到单例设计模式大家可能会想到最多的是懒汉式和饿汉式吧,这里这两种方式我都不介绍了,可以参考我的这篇文章饿汉式
我要介绍的是在分布式中常用的,inner in class的这种形式(内部类的形式)(其实还是一样的原理)

public class InnerSingleton {    private static class Singletion {        private static Singletion single = new Singletion();    }    public static Singletion getInstance(){        return Singletion.single;    }}

dobbleSingleton

public class DubbleSingleton {    private static DubbleSingleton ds;    public static DubbleSingleton getDs(){        if(ds == null){            try {                //模拟初始化对象的准备时间...                Thread.sleep(3000);            } catch (InterruptedException e) {                e.printStackTrace();            }            synchronized (DubbleSingleton.class) {                if(ds == null){                    ds = new DubbleSingleton();                }            }        }        return ds;    }    public static void main(String[] args) {        Thread t1 = new Thread(new Runnable() {            @Override            public void run() {                System.out.println(DubbleSingleton.getDs().hashCode());            }        },"t1");        Thread t2 = new Thread(new Runnable() {            @Override            public void run() {                System.out.println(DubbleSingleton.getDs().hashCode());            }        },"t2");        Thread t3 = new Thread(new Runnable() {            @Override            public void run() {                System.out.println(DubbleSingleton.getDs().hashCode());            }        },"t3");        t1.start();        t2.start();        t3.start();    }}
原创粉丝点击