标签:阶段 无法 prot 窗口 instance 并发 加锁 频繁 spring
对象的创建时一个非常耗费资源的一件事,如果频繁的创建状态没有改变的对象是一件没有意义的事情。那么,我们可以提供一个给予对象的窗口,而不再允许使用者自由的创建实例对象,这种设计模式就是单例模式。
根据这个对象是在什么时候创建分为懒加载和非懒加载。懒加载就是在使用者明确要对象的时候才创建对象,非懒加载是类一加载就马上创建好对象等着用户老爷要。
Spring中bean默认就是单例模式,Scope属性没有显示声明为protoType,那么这个bean就是单例的,每次使用时取得的都是同一个bean。
懒加载的单例模式还涉及到并发时如何保证单例。就是如果有多个线程同时都要一个相同的对象,一看都没有,那么就先创建一个吧,如果不加控制的话,此时会创建多个对象,这也就违背了单例模式的初衷了。
package title02; public class Singleton { private static Singleton instance = null; // 私有的构造器,类以外无法构造实例 private Singleton() { } public Singleton getInstance() { // 双重检查加锁 if (instance == null) { synchronized(Singleton.class) { if (instance == null) { instance = new Singleton(); } } } return instance; } }
===========================================================================================================================================
本文只是我现阶段的学习心得总结而成,内容可能不够深入,由于水平所限,不保证所有内容正确,欢迎有同学在评论中指正,万分感谢!
保证每一个字的原创性!
作为一个程序员,我所能做的就是每一天都在进步,面对技术保持一颗赤子之心,这是我人生现阶段全部的追求。"Stay hungry, stay foolish"!
============================================================================================================================
标签:阶段 无法 prot 窗口 instance 并发 加锁 频繁 spring
原文地址:https://www.cnblogs.com/sunmin/p/9323134.html