我是靠谱客的博主 无限大炮,最近开发中收集的这篇文章主要介绍java多线程(6) ----- 单例模式和多线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(欢迎关注微信公众号:深入Java底层)

6.1立即加载/“饿汉模式”

立即加载/“饿汉模式”就是使用类的时候已经将对象创建完毕,常见的实现办法就是直接new实例化。



6.2 延迟加载/“懒汉模式”

延迟加载/“懒汉模式”就是在调用get()方法时实例才被创建,常见的实现办法就是在get()方法中进行new实例化。使用DCL双检查锁机制来实现多线程环境中的延迟加载单例设计模式。


使用双重检查锁功能,成功地解决了“懒汉模式”遇到多线程的问题。DCL也是不多数多线程结合单例模式使用的解决方案。

6.3 使用静态内置类实现单例模式

DCL可以解决多线程单例模式的非线程安全的问题。当然,使用其他的办法也能达到同样的效果。


6.4 序列化与反序列化的单例模式实现

静态内置类可以达到线程安全问题,但如果遇到序列化对象后,使用默认的方式运行得到的结果还是多例的。


6.5 使用static代码块实现单例模式

静态代码块中的代码在使用类的时候就已经执行了,所以可以应用静态代码块的这个特性实现单例设计模式。


6.6 使用enum枚举数据类型实现单例模式

枚举enum和静态代码块的特性相似,在使用枚举类时,构造方法会被自动调用,也可以应用其这个特性实现单例设计模式。


6.7 完善使用enum枚举实现单例模式

前面一节将枚举类进行曝露,违反了“职责单一原则”,下面代码对其完善。

(欢迎关注 微信公众号 :深入Java底层)

最后

以上就是无限大炮为你收集整理的java多线程(6) ----- 单例模式和多线程的全部内容,希望文章能够帮你解决java多线程(6) ----- 单例模式和多线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部