文档章节

GCD笔记

KevinEmily
 KevinEmily
发布于 2016/01/29 14:43
字数 595
阅读 41
收藏 2

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

© 著作权归作者所有

共有 人打赏支持
KevinEmily
粉丝 18
博文 40
码字总数 23590
作品 0
东城
私信 提问
算法学习笔记(1)----最大公约数

求两个整数a,b的最大公约数可用辗转相除法得到,其具体证明如下:假设a>b 假设a=bt+r,即证明gcd(a,b)=gcd(b,r),设gcd(a,b)=c,a=mc,b=nc r=a-bt=mc-ntc=(m-nt)c,则只需证明m-nt与n互素 反证...

亭芳
2014/03/09
0
0
算法分析笔记

定义 ---定义: 若存在正常数 c 和 n0 使得当 N ≥ n0 时 T(N) ≤ cf(N),则记为 若存在正常数 c 和 n0 使得当 N ≥ n0 时 T(N) ≥ cf(N),则记为 当且仅当 且 若 且 , 则 法则: 若 T1(N) ...

lionets
2016/07/03
134
0
传智播客学习笔记 网络多线程

主线程处理UI,避免耗时操作 iOS多线程技术有4种 pthread,通用技术,跨平台 c语言,程序员管理生命周期,几乎不用 NSThread 面向对象,可以直接操作线程 OC语言 程序员 管理生命周期,偶尔使...

云飞扬v5
2015/08/11
0
0
用模板静态计算出最大公因子 (几何画板开发笔记 一)

问题提出: 在开发 C++ 版几何图形系统中, 需要求出两个数字的最大公因子, 算法用 C 语言可写出为: int gcd (int x, int y) { if (y == 0) return x; else if (x > y) return gcd (y, x % y);...

刘军兴
2014/05/02
0
0
OpenCV学习笔记-图像分割之GrabCut

点击打开链接,点击打开链接 grabCut(img, mask, rect, bgdModel, fgdModel, iterCount, mode=None) GCDPRBGD和GCDPRFGD bdgModel,fgdModel: 算法内部使用的数组,只需要创建两个大小为(1,...

qq_36387683
2018/05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ZStack--工作流引擎

在IaaS软件中的任务通常有很长的执行路径,一个错误可能发生在任意一个给定的步骤。为了保持系统的完整性,一个IaaS软件必须提供一套机制用于回滚先前的操作步骤。通过一个工作流引擎,ZStac...

ZStack社区版
13分钟前
1
0
Eclipse 安装lombok

1.首先打开lombok官网:https://projectlombok.org/ 2.选择下载 3.使用java -jar 运行jar包(一般情况下双击即可) 4.安装 5.重启IDE...

hengbao5
18分钟前
4
0
混合式开发框架资料汇总

1.quickhybrid 2.kerkee 3.Hybrid

IT追寻者
25分钟前
2
0
PyCharm入门教程——基本编辑程序

PyCharm最新版本下载 JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web...

电池盒
28分钟前
1
0
分布式、高并发、多线程

分布式 分布式是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段。包括但不限于:分布式文件系统,分布式缓存,分布式数据库,分布式计算。 分布式的实现有两种形式: 水平扩展:...

细节探索者
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部