iOS开发 - 单例&线程锁
来源:互联网 发布:ubuntu系统可以干什么 编辑:程序博客网 时间:2024/05/15 04:37
//加锁之后 同一时刻 只允许一个线程访问
//数据修改前 加锁
[self.lock lock];
num–;
NSLog(@”%@ num = %d”,[NSThread currentThread].name,num);
[NSThread sleepForTimeInterval:0.5];
if(num == 0){
break;
}
//数据修改后 解锁
[self.lock unlock];
加锁单例
@implementation Single
//全局静态变量
static Single * single;
+(instancetype)shareSingle{
//加锁 同一时刻只允许一个线程访问@synchronized(self){ if (!single) { single = [[Single alloc] init]; }}//GCD加锁 dispatch_once_t只会执行一次static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{ single = [[Single alloc] init];});return single;
}
//重写这个方法 可以让我们用alloc创建的对象也是同一份对象
+(instancetype)allocWithZone:(struct _NSZone *)zone{
static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{ single = [super allocWithZone:zone];});return single;
}
//copy的对象也是同一个对象
-(id)copyWithZone:(NSZone *)zone{
return single;
}
1 0
- iOS开发 - 单例&线程锁
- iOS开发实践之多线程(单例模式)
- ios开发单例模式——使用GCD实现单例模式 & 非ARC单例模式 &使用GCD和线程锁实现单例模式
- iOS开发之单例
- IOS开发 单例模式
- iOS开发之单例
- iOS 开发之 单例
- iOS开发-单例模式
- IOS开发之单例
- iOS开发之单例
- ios开发 单例模式
- iOS开发-单例模式
- ios中的线程安全单例实现
- iOS线程安全单例详解
- iOS UI 21 单例中的线程
- IOS 单线程 多线程问题
- Singleton 单例模式 -IOS开发
- Singleton 单例模式 -IOS开发
- Android 网络通信(Asynctask类的使用)
- iPhone上用小影剪辑视频(iPhone读取文件)
- python中lambda的用法
- HDU 1272 并查集
- shell-数组
- iOS开发 - 单例&线程锁
- linux printf设置颜色与输出控制,利用控制码,实现固定位置输出百分比进度
- c++第二次实验——学生成绩
- Ubuntu安装完Qt后报错error: cannot find -lGL解决办法
- removeChild删除表格数据时遇到的问题
- iOS开发 - Coredata
- MATCH_PARENT与FILL_PARENT:不要做什么和怎么做
- 关于友员
- iOS开发 - MagicalRecord