收藏

设计模式-单例

2021-12-31  本文已影响0人  go_2021

你所以为的天才,只不过是不断练习的结果而已。

  1. 单例大致分为4种:
    饿汉式, 懒汉式, 懒汉式+双重检验, 内部静态类
  2. 单例 实现有2点要求
  1. 内部非静态类可以么?
    不可以,内部非静态类是依赖外部类实例的。
  2. 双检为啥要加 volatile
图一
因为第4步骤分为3步,不加 volatile有可能会乱序 132执行。
图二
如果132执行,那么图一中的第一步去判断,因为已经指向了内存所以直接走第五步,然后返回的是一个没有初始化好的实例,就会出问题。

参考:https://www.jianshu.com/p/a9ecac4bd753

上一篇下一篇

猜你喜欢

热点阅读