//基于gcd的单例模式
static Type *_instances;
+ (id)allocWithZone:(NSZone *)zone
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken,^{
_instances = [super allocWithZone:zone];
});
return _instances;
}
//创建一个获取单例的方法
+ (Type *)sharedInstances
{
if(_instances == nil){
_instances = [[self alloc] init];
}
return _instances;
}
本文介绍了一种基于Grand Central Dispatch (GCD)实现的单例模式,通过dispatch_once确保实例化过程线程安全地执行一次。此外,还提供了一个获取单例的方法,并强调了在多线程环境下使用@synchronized进行同步的重要性。
241

被折叠的 条评论
为什么被折叠?



