首页 > 移动平台 > 详细

iOS多线程中的单例

时间:2016-05-28 17:20:47      阅读:175      评论:0      收藏:0      [点我收藏+]
 1 #import "MyHandle.h"
 2 
 3 static MyHandle *handle = nil;
 4 @implementation MyHandle
 5 // 传统写法
 6 // 此时如果多个任务并发执行,他就不会满足单例的优点
 7 //+ (MyHandle *)shareMyHandle {
 8 //    if (nil == handle) {
 9 //        handle = [[MyHandle alloc] init];
10 //    }
11 //    return handle;
12 //}
13 
14 // 多线程中的写法
15 + (MyHandle *)shareMyHandle {
16     // 在GCD 中保证只执行一次, 用于记录内容是否执行过
17     static dispatch_once_t onceToken;
18     dispatch_once(&onceToken, ^{
19         handle = [[MyHandle alloc] init];
20     });
21     return handle;
22 }
23 
24 @end

 

iOS多线程中的单例

原文:http://www.cnblogs.com/crazygeek/p/5537613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!