创建 SingleModel 类,第一种是用Grand Central Dispatch创建比较常用
//GCD
创建
+(
instancetype
)shareSingleModel
{
static SingleModel *single = nil ;
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
single = [[ SingleModel alloc ] init ];
});
return single;
}
{
static SingleModel *single = nil ;
static dispatch_once_t onceToken;
dispatch_once (&onceToken, ^{
single = [[ SingleModel alloc ] init ];
});
return single;
}
第二种是简单的加锁
// 加锁加锁
+( instancetype )shareSingleTwo
{
static SingleModel *single = nil ;
@synchronized ( self ) {
if (single == nil ) {
single = [[ SingleModel alloc ] init ];
}
}
return single;
// 加锁加锁
+( instancetype )shareSingleTwo
{
static SingleModel *single = nil ;
@synchronized ( self ) {
if (single == nil ) {
single = [[ SingleModel alloc ] init ];
}
}
return single;
}
本文详细介绍了使用Grand Central Dispatch (GCD) 和加锁机制创建Singleton模式对象的方法,提供了两种实现方式并对比了它们的优缺点。

3508

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



