GCD笔记
GCD笔记
KevinEmily 发表于2年前
GCD笔记
  • 发表于 2年前
  • 阅读 39
  • 收藏 2
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: GCD

1.NSOperation的作用:

 (1)是oc语言中基于GCD的面向对象的封装

 (2)不用关心线程以及线程的生命周期

  1. NSOperation抽象类,通过子类 或者系统提供两个子类。

  2. 队列;一个操作只能被添加到一个队列

  3. NSBlockOperation:创建一个操作;添加操作到队列(并发队列异步执行)

  4.  GCD是ios4.0推出的 主要针对多核cpu做了优化  是c语言的技术

  5. 最大并发数:同时执行的任务数

  6. 暂停取消恢复:创建一个队列->懒加载(最大并发数)->for-in添加操作到队列->延时1秒->

  7. 暂停队列[self.queue setSuspended :YES]队列默认Suspended是no   暂停的是队列中还没有被运行的操作  正在运行的操作不能通过此方法暂停;   继续队列:[self.queue setSuspended :NO];  取消队列:[self.queue cancelAllOperations]取消队列中没有被运行的操作  正在被运行的操作不能通过此方式取消   (当队列suspended == YES时  往队列中再添加操作  不运行)

  8. 拿到队列中的操作数:(self.queue.operationCount)

  9. 操作的优先级(服务质量): 优先级高的不一定先执行

  10.  队列的优先级:优先级高的不一定比优先级低的先运行,有更多的可能被cpu调度

  11. 操作依赖:addDependency  可以跨队列设置依赖关系  操作加入到队列之前设置  同步任务

  12. 图片下载:  Model ->//字典转模型 //懒加载->ATS配置显示界面->图片->模拟网络慢->开启子线程->线程通信->添加操作到队列

  13. app出现的问题:(1)图片显示不出来 ( 因为没有frame) ;(2)当点击或者拖动界面  图片才出来:   cell中的图片是懒加载;(3)设置占位图片:cell一开始创建的时候  就生成imageview的frame(4)自定义cell:每次滚动都下载图片浪费流量(5)内存缓存:保存图片到内存缓存   (6)当网速很慢的时候  来回滚动 一个图片开启多个下载操作 :创建可变数组用于记录执行下载操作  操作缓存 (7)操作缓存   内存不够用:清除内存缓存:清空操作缓存(8)沙盒缓存:存储图片到沙盒

  14. UI线程不安全

Emily.Wang

共有 人打赏支持
粉丝 18
博文 40
码字总数 23590
×
KevinEmily
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: