iOS多线程之互斥锁
2016-01-07 00:00
561 查看
1.安全隐患解决-互斥锁
互斥锁使用格式@synchronized(锁对象) { // 需要锁定的代码 } 注意:锁定1份代码只用1把锁,用多把锁是无效的
互斥锁的优缺点
优点: 能有效防止因多线程抢夺资源造成的数据安全问题
缺点:需要消耗大量的CPU资源
互斥锁的使用前提:多条线程抢夺同一块资源
相关专业术语:线程同步
线程同步的意思是:多条线程按顺序地执行任务
互斥锁,就是使用了线程同步技术
2.原子性和非原子性
OC在定义属性时有nonatomic和atomic两种选择atomic:原子属性,为setter方法加锁(默认就是atomic)
nonatomic:非原子属性,不会为setter方法加锁
atomic加锁原理
@property (assign, atomic) int age; - (void)setAge:(int)age { @synchronized(self) { _age = age; } }
3.原子性与非原子性的选择
nonatomic和atomic对比atomic:线程安全,需要消耗大量的资源
nonatomic:非线程安全,适合内存小的移动设备
iOS开发的建议
所有属性都声明为nonatomic
尽量避免多线程抢夺同一块资源
尽量将加锁、资源抢夺的业务逻辑交给服务器端处理,减小移动客户端的压力
相关文章推荐
- ios 推送证书制作成P12格式
- iOS 9音频应用播放音频之iOS 9音频播放进度
- iOS安全攻防(一):Hack必备的命令与工具
- iOS隐藏状态栏
- iOS应用程序的数据存储--沙盒机制
- iOS开发的一些奇巧淫技
- iOS__ 手势识别总结
- 搭建基于"Jenkins"的iOS持续集成环境
- iOS开发实践之多线程(基本概念)
- iOS调节系统音量
- iOS 信鸽SDK完整接入
- IOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- 蓝懿ios技术交流和心得分享16.1.6
- ios crash的原因与抓取crash日志的方法
- iOS 更轻量级的控制器 数据请求和解析的封装
- iOS地球坐标,火星坐标,百度坐标互转
- ios相册
- iOS学习之路-加法计算器
- 不可不知的:iOS开发的22个诡异技巧
- iOS 创建单例的两种方法