单例模式的线程安全性

Posted super_xueyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式的线程安全性相关的知识,希望对你有一定的参考价值。

单例模式是设计模式中比较简单的一种。适合于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统,
它们都是原型的例子。典型的情况是,那些对象的类型被遍及一个软件系统的不同对象访问,因此需要一个全局的访问
指针,这便是众所周知的单例模式的应用。
经典的单例模式有三种,懒汉式、饿汉式和懒汉式单例模式改进式

“懒汉式”是在你真正用到的时候才去建这个单例对象,所以是线程不安全
懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
 

 

测试懒汉式的函数
 

 

 测试结果
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变。

懒汉式的改进

运用静态内部类的方式,在类被调用的时候才会产生对象

以上是关于单例模式的线程安全性的主要内容,如果未能解决你的问题,请参考以下文章

线程安全的单例模式是否真的安全

LINUX多线程(线程池,单例模式,线程安全,读者写者模型)

C# 两行代码实现 延迟加载的单例模式(线程安全)

C++ 线程安全的单例模式总结

多线程 实现单例模式 ( 饿汉懒汉 ) 实现线程安全的单例模式 (双重效验锁)

线程安全的 C# 单例模式