文档章节

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
用模板静态计算出最大公因子 (几何画板开发笔记 一)

问题提出: 在开发 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
传智播客学习笔记 网络多线程

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

云飞扬v5
2015/08/11
0
0
OpenCV学习笔记-图像分割之GrabCut

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

qq_36387683
05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis常用命令

keys 我把这个命令放在第一位,是因为笔者曾经做过的项目,以及一些朋友的项目,都因为使用keys这个命令,导致出现性能毛刺。这个命令的时间复杂度是O(N),而且redis又是单线程执行,在执行k...

谢思华
35分钟前
2
0
关于css宽度分离

所谓宽度分离就是width 属性不与影响宽度的 padding/border(有时候包括 margin)属性共存 例如: .box{width:200px;padding:20px;border:1px solid;} 为何要做宽度分离 一说到分离就是为了好...

莫西摩西
46分钟前
1
0
Linux常用命令

###############常用命令说明############################## cat /proc/version 显示内核的版本 mv dir1 new_dir 重命名/移动 一个目录 rm -rf a.txt b.txt c.txt 删除多个文件 chmod 777 ......

lyle_luo
53分钟前
2
0
全国地区代码科普

全国地区代码表 天津市 地区代码 地区名称 1100 天津市 辽宁省 地区代码 地区名称 2210 沈阳市 2210 法库县 2210 康平县 2210 辽中县 2210 新民市 2220 大连市 2222 普兰店市 2223 庄河市 22...

恋码之子
53分钟前
1
0
DbForge Schema Compare for MySQL入门教程:生成比较报告

【dbForge Schema Compare for MySQL下载】 当架构比较完成后,您可以生成比较报告以保留架构更改的记录。 1. 在“Comparison” 菜单中,单击“Generate Comparison Report” 。将打开“Gen...

Miss_Hello_World
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部