java 单例模式

来源:互联网 发布:mac修改器 编辑:程序博客网 时间:2024/06/11 01:04
一个普通的Java类实现的单例模式代码如下:/** * 单例模式 * @author glogo * */public class Singleton {private static volatile Singleton singleton = null;//构造函数必须是privateprivate Singleton(){}public static Singleton getInsSingleton(){if(singleton == null){//外层if的作用:一旦唯一的一个实例被创建之后无需再synchronized,提高效率。synchronized(Singleton.class){if(singleton == null)singleton = new Singleton();}}return singleton;}}它是实现了双重检查的。线程级别的单例模式:通过ThreadLocal<T>类型的静态成员变量 定义 仅在线程内部生效的全局对象。public class SingletonThread{private static final ThreadLocal<SingletonThread> local = new ThreadLocal<SingletonThread>(){@Overrideprotected SingletonThread initialValue() {return new SingletonThread();}};private SingletonThread(){}public static SingletonThread getISingleton(){return local.get();}}

原创粉丝点击