您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: