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
总结以上是内存溢出为你收集整理的ios-技术总结全部内容,希望文章能够帮你解决ios-技术总结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)