《Head First-Chapter5》单例模式

来源:互联网 发布:网络kvm 编辑:程序博客网 时间:2024/06/03 18:07

单例模式

                                       独一无二的对象

一、经典的单例模式

1、  定义

确保一个类只有一个实例,并提供一个全局访问点。

2、  类图

       

3、  实现

        

4、  一些说明

<1>由类自己负责创建和保存它的唯一实例

<2>常被用来管理共享的资源,如数据库连接或线程池等

5、  多线程出问题啦!!!



二、懒汉与饿汉

1、懒汉

第一次用到时才去实例化。一般用于访问量大或访问线程多时。

2、饿汉

在类定义时就去实例化。一般用于访问量小或线程少时。


三、懒汉式(线程安全---加锁)

       

注:如果没有第二个NULL判断,那么两个线程通过第一个NULL判断,lock机制,A线程进入,B线程等待,A线程创建实例出来后,B线程进入还可以创建实例。


四、饿汉式(本身就是线程安全的)


原创粉丝点击