#import "EOCClassShareInstance.h"
@implementation EOCClassShareInstance
/**
* 一般创建单例方式
*/
+(id)shareInstance{
static EOCClassShareInstance *shared = nil;
@synchronized(self) {
if (!shared){
shared = [[EOCClassShareInstance alloc]init];
}
}
return shared;
}
/**
* GCD线程安全模式
*/
+(id)sharedGCDInstance{
static EOCClassShareInstance *sharedGCD = nil;
static dispatch_once_t onceToken;//每次调用都必须使用相同的标记,所以要申明为static
dispatch_once(&onceToken, ^{
sharedGCD = [[self alloc]init];
});
return sharedGCD;
}
@end
OC高效率52之使用dispatch_once来执行只需运行一次的线程安全代码
点赞
收藏