GCD笔记

1.NSOperation的做用:ios

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

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

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

  2. 队列;一个操做只能被添加到一个队列网络

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

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

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

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

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

  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

相关文章
相关标签/搜索