实现单例的几个关键

实现单例的几个关键点:
  1. 懒加载
  2. 线层安全
  3. 编译器指令重排优化
  4. 可继承,方法可override

Objective-C中的单例写法:

@implementation MyObject + (instancetype)sharedInstance { static MyObject *instance; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[MyObject alloc] init]; }); return instance; } @end

dispatch_once的底层实现

dispatch_once的底层实现其实并不复杂:

Void

dispatch_one(dispatch_once_t *va, dispatch_block_t blockl{

})


   转载规则


《实现单例的几个关键》 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
OC lock锁 OC lock锁
NSRecursiveLock trylock 认知 在同一个线程中多次 lock 不会造成死锁 但是可能会造成线程等待 如果锁在 线程A 中 lock 了 并没有解锁, 那么在其他线程如果调用了该锁除𝑡𝑟𝑦𝑙𝑜𝑐𝑘外除try
2020-09-28
下一篇 
ios启动页LaunchScreen设置全屏,处理启动页显示在状态栏的下方问题1:添加一个launchscreen文件 拖动一个imageview到launchscreen 设置imageviewcontmode为aspect to fil
2020-09-25
  目录