java经典设计模式之单例模式

2019-06-11  本文已影响0人  三百弄

1、引言

        单例模式是开发中用的最多的模式,随处可见。此处就不在多讲。单例模式有饿汉式,懒汉式。懒汉式后来又衍生出双重校验锁。实现单例模式需要三步:

1)、构造方法私有,保证无法从外部通过 new 的方式创建对象。

2)、对外提供获取该类实例的静态方法

3)、类的内部创建该类的对象,通过第 2 步的静态方法返回


2、正式学习

有些情况下必须使用单例模式,如果不使就会产生如下情况:

2.1、饿汉式

2.2、懒汉式

        懒汉式线程不安全,当同时一个线程进来还没有执行tools = new Tools()时,另一个线程也进来,则会实例化两个对象,导致线程不安全。可以加上synchroized,缺点就是效率有些低。

效率低下 效率可以,但同样不安全 双重校验锁

        双重校验锁不仅解决了效率问题,同时还保证了线程安全

上一篇下一篇

猜你喜欢

热点阅读