#import "MyHandle.h" static MyHandle *handle = nil;
@implementation MyHandle
// 传统写法
// 此时如果多个任务并发执行,他就不会满足单例的优点
//+ (MyHandle *)shareMyHandle {
// if (nil == handle) {
// handle = [[MyHandle alloc] init];
// }
// return handle;
//} // 多线程中的写法
+ (MyHandle *)shareMyHandle {
// 在GCD 中保证只执行一次, 用于记录内容是否执行过
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
handle = [[MyHandle alloc] init];
});
return handle;
} @end
相关文章
- 10-22快三买大小单双必中的办法找57568312
- 10-22【并发编程】线程池是否需要手动关闭吗?以Hutool中的线程池为例
- 10-22GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例
- 10-22单例模式的饿汉式读取db.properties文件中的内容
- 10-22eval、exec及元类、单例实现的5种方法
- 10-22iOS底层原理(七)多线程(中)
- 10-22【Mac OS开发】使用gcd快速排序数组,使用gcd多线程查找数组中的最大值
- 10-22ios中多线程GCD NSOperation NSThread 相关的操作解析
- 10-22阿里、字节:一套高效的iOS面试题之多线程
- 10-22MFC中 给基于CFormView的单文档添加背景图片