作用:都是为了保证只产生唯一的实例,多线程情况下,单例的形式保证只产生一个,threadLocal的形式是产生自身对应的一个实例,这个要区分清楚。
单例模式代码:
threadLocal模式代码:
内部类模式代码:加载一个类时,其内部类不会被加载。这样保证了只有调用getInstance()时才会产生实例,控制了生成实例的时间,实现了延迟加载。并且去掉了synchronized,让性能更优,用static来确保唯一性。
上边三类情况的测试类代码,单独测试:
本文介绍了三种实现单例模式的方法:双重检查锁定、ThreadLocal及内部类方式。详细解释了每种方式的特点及其适用场景,并提供了相应的代码示例。
465
762

被折叠的 条评论
为什么被折叠?