单利模式添加互斥锁

2020-03-11  本文已影响0人  哈利路亚biubiu

单例模式不适合使用继承实现的原因
static id _instance;在整个内存中只有一份,所以会导致一下错误,用代码说明一下:
// 比如有一个基类
YHSingelton
// YHPerson继承于YHSingelton
YHPerson : YHSingelton
// YHCar也继承于YHSingelton
YHCar : YHSingelton
// 打印出来的都是YHPerson对象
// 因为static id _instance;在整个内存中只有一份
NSLog(@"%@---%@", [YHPerson sharedInstance], [[YHCar sharedInstance]);
也可以通过互斥锁的方式实现单例模式,但是没有必要,用GCD就很好了,这里只重写allocWithZone:方法简单演示一下

// 著名的双锁技术

上一篇 下一篇

猜你喜欢

热点阅读