ios-技术总结
2015-10-04 13:17
260 查看
1.列举cocoa中常见对几种多线程的实现并谈谈多线程安全的几种解决办法以及多线程安全怎么控制?
1>只在主线程中刷新UI
2>如果要防止资源抢夺 得用synchromized 进行枷锁保护
3>如果一部操作要保证线程安全等问题尽量使用GCD 有些函数默认是安全的
2、GCD内部怎么实现的
1>iOS和OSX的核心都是XNU GCD是基于XNU内核实现的
2>GCD的API全部在libdispath 库中
3>GCD的地城实现主要有dispatch Queue 和dispatch Source
dispatch Queue 管理block 操作
dispatch Source 处理事件
3.NSOperationQueue 和 GCD的区别
1>GCD是纯C语言的API NSOperation 是基于GCD的OC版的封装
2>GCD只支持FIFO的队列 NSOperation 可以方便的调整执行顺序 设置最大的并发量
3>NSOperationQueue可以轻松的在Operation 间设置依赖关系 而GCD需要写很多代码才能实现
4>NSOperationQueue支持KVO 可以监测operation 是否在执行(isExecuted) 是否结束(isFinished)
是否取消(isCanceld)
5>GCD的运行速度比NSOperation快
任务之间不太相互依赖:GCD
任务之间有依赖 或者要坚挺任务的执行情况 NSOperation
4、使用GCD以及block 时要注意什么?是一回事儿吗?block 在ARC中和传统的MRC中的行为和用法有什么区别
需要注意什么?
Block的使用注意
block 的内存管理
防止循环retain
非ARC:__block
ARC __weak\__unsafe_unretained
1>只在主线程中刷新UI
2>如果要防止资源抢夺 得用synchromized 进行枷锁保护
3>如果一部操作要保证线程安全等问题尽量使用GCD 有些函数默认是安全的
2、GCD内部怎么实现的
1>iOS和OSX的核心都是XNU GCD是基于XNU内核实现的
2>GCD的API全部在libdispath 库中
3>GCD的地城实现主要有dispatch Queue 和dispatch Source
dispatch Queue 管理block 操作
dispatch Source 处理事件
3.NSOperationQueue 和 GCD的区别
1>GCD是纯C语言的API NSOperation 是基于GCD的OC版的封装
2>GCD只支持FIFO的队列 NSOperation 可以方便的调整执行顺序 设置最大的并发量
3>NSOperationQueue可以轻松的在Operation 间设置依赖关系 而GCD需要写很多代码才能实现
4>NSOperationQueue支持KVO 可以监测operation 是否在执行(isExecuted) 是否结束(isFinished)
是否取消(isCanceld)
5>GCD的运行速度比NSOperation快
任务之间不太相互依赖:GCD
任务之间有依赖 或者要坚挺任务的执行情况 NSOperation
4、使用GCD以及block 时要注意什么?是一回事儿吗?block 在ARC中和传统的MRC中的行为和用法有什么区别
需要注意什么?
Block的使用注意
block 的内存管理
防止循环retain
非ARC:__block
ARC __weak\__unsafe_unretained
相关文章推荐
- iOS和OSX的核心
- IOS中的字典转模型
- iOS开发——性能优化的25个建议和技巧
- iOS 错误: [NSNull length]: unrecognized selector sent to instance 0x110504af0'
- iOS讲解迷惑深入浅出之block那点事
- iOS开发 —— MVVM设计模式
- iOS NSDateFormatter 日期的使用
- [置顶] iOS开发之导出ipa文件以及查看内容
- iOS几种界面跳转方式简介
- [置顶] iOS开发小技巧归纳
- iOS国际化
- 苹果最新 Mac OS X El Capitan 正式版系统 dmg 镜像下载 / 升级安装程序
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- OS X升级到10.11后Xcode6.4界面无iOS device选择栏的解决办法
- 【IOS 开发学习总结-OC-30】★★OC之foundation 框架——集合(NSSet 与 NSMutableSet)
- iOS定位,地图详解
- 用CocoaPods做iOS程序的依赖管理
- iOS模拟器把键盘叫回去
- IOS开发-属性动画和关键帧动画的使用