ios-技术总结

4 篇文章 0 订阅

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值