- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
iOS多线程与GCD 你看我就够了 在介绍多线程编程之前先介绍几个大家特别容易混淆,也是非常重要的概念。 同步/异步 同步:多个任务情况下,一个任务A执行结束,才可以执行另一个任务B。只存在一个线程也就是主线程。 异步:多个任务情况下,一个任务A正在执行,同时可以执行另一个任务B。任务B不用等待任务A结束才执行。存在多条线程。 图1 同步示例图 图2异步示例图 并发/并行? 并行:指两个或多个时间在同一时刻发生。多核CUP同时开启多条线程供多个任务同时执行,互不干扰。 并发:指两个或多个事件在同一时间间隔内发生。可以在某条线程和其他线程之间反复多次进行上下文切换,看上去就好像一个CPU能够并且执行多个线程一样。其实是伪异步。如下并发图,在同一线程,任务A先执行了20%,然后A停止,任务B重新开始接管线程开始执行。 图3 并行示意图 图4 并发示意图 好了,简单谈了一下多线程可能涉及到的的概念,看官先消化一下,再接着往下看。 多线程是指在软件或硬件上实现多个线程并发执行的技术。通俗讲就是在同步或异步的情况下,开辟新线程,进行线程间的切换,以及对线程进行合理的调度,做到优化提升程序性能的目的。那么多线程编程会带给我们很多好处,同时也是一种容发生各种问题的编程技术。比如多个线程更新相同的资源会导致数据的不一致[数据竞争],停止等待时间的线程会导致多个线程相互持续等待[死锁],使用太多线程会消耗大量内存。 图5 多线程编程的问题 尽管多线程编程极易发生各种问题,但是呢也应当使用多线程编程,这是为什么呢?因为使用多线程编程可以保证应用程序的相应性能。利大于弊,小心使用即可。 应用程序在启动时,在主线程中描绘用户界面,处理触摸屏幕的事件等。如果在该主线程中进行长事件的处理,比如一些多请求的情况,就会妨碍主线程的执行[阻塞]。这样会妨碍主线程中被称为RunLoop[在iOS和OS X的应用中]的主循环的执行,从而导致不能更新用户界面,应用程序的画面长时间停滞等问题。而使用了多线程编程,在执行长时间的处理仍可保证用户界面的相应性能。 图6 多线程编程的优点 那么我们iOS开发者,苹果给我们提供了哪些多线程技术呢? 一.NSThread ? ? ? 我们先来介绍一下最古老但不怎么用的NSThread,下面是NSThread的所有API及注释,可参考了解,详细用法可以百度有哪些信誉好的足球投注网站详细用法,在这里不多做论述了哈~压轴的且看下文GCD。 + (NSThread*)currentThread; //获取当前线程 + (void)detachNewThreadSelector:(SEL)selector toTarget:(id)target withObject:(nullableid)argument;//这个方法可以直接生成一个线程并启动它,而且无需为线程的清理负责 + (BOOL)isMultiThreaded;// 判断是否为多线程 @property(readonly,retain) NSMutableDictionary *threadDictionary; + (void)sleepUntilDate:(NSDate*)date;//设置线程阻塞时间 + (void)sleepForTimeInterval:(NSTimeInterval)ti;//设置线程阻塞时间 + (void)exit;//退出 + (double)threadPriority;//优先级 + (BOOL)setThreadPriority:(double)p;//优先级 @property double threadPriority ? NS_AVAILABLE(10_6,4_0);// To be deprecated; use qualityOfService below @property NSQualityOfServicequalityOfService ?NS_AVAILABLE(10_10,8_0);// read-only after the thread is started + (NSArray *)callStackReturnAddressesNS_AVAILABLE(10_5,2_0);// 线程函数地址 + (NSArray *)callStackSymbols? NS_AVAILABLE(10_6,4_0);//查看方法被调用的callstack @property (nullable,copy) NSString*name ?NS_AVAILABLE(10_5,2_0);//线程名字 @property NSUInteger stackSize NS_AVAILABLE(10_5,2_0);//堆栈大小 @property (reado
您可能关注的文档
- 拓展资源库 243.瑞典猎鹿犬 瑞典猎鹿犬FCI标准.doc
- 拓展资源库 294.西施 西施FCI标准.doc
- 拓展资源库 307.匈牙利灵缇 匈牙利灵缇FCI标准.doc
- 拓展资源库 311.意大利狐狸犬 意大利狐狸犬FCI标准.doc
- 拓展资源库 313.意大利灵缇 意大利灵缇FCI标准.doc
- 外贸单证库 议付信用证 即期自由议付信用证-1.docx
- 玩教具制作 社会领域玩教具制作 脚本七:社会领域玩教具(社会领域玩教具制作要点及范例分析).docx
- 网络基础-2017 局域网技术 局域网其他组网技术.docx
- 网络技术 计算机网络概述 3 使用RSTP实现网络的快速收敛.doc
- 网络设备安装与调试(旧) 考证题库及其解析 H3CNE题库(1-30).doc
- 移动应用软件开发综合实训(基于iOS平台)-2017 图像选择器的使用 iOS相机相册调用.docx
- 移动游戏开发综合实训-2017 跳跃发力POSE设计 跳的起跳.docx
- 移动游戏开发综合实训-2017 跳跃落地POSE设计 跳的缓冲.docx
- 移动游戏开发综合实训-2017 项目创建 项目创建.docx
- 移动游戏开发综合实训-2017 整体比例 整体比例.doc
- 银行会计实务 跨行贷记支票处理-收款行提入交换 跨行贷记支票处理-收款行提入交换(2019).doc
- 英语国家文化 6美国 6教案-美国14-21.doc
- 营销策划 课程学习要求 YXCH000025-03营销策划课程教学设计-微课讲义.doc
- 优生学 胎儿宫内治疗 教案 第八章胎儿宫内治疗.doc
- 油脂加工技术 项目三 油脂水化脱胶 项目三 油脂水化脱胶.doc
最近下载
- 力士乐轴向柱塞变量双泵A20VG(A22VG).pdf
- (国家卫健委)流行性感冒诊疗方案(2025年版)(课件).pptx VIP
- 2025年必威体育精装版教师培训管理制度.docx
- YY 0117.1-2024 外科植入物 骨关节假体锻、铸件 第1部分:Ti6Al4V钛合金锻件.pdf
- NICU早产儿精细化护理实践指南.pptx VIP
- 2025年江西省直机关遴选公务员面试真题带详细解析及答案.docx VIP
- 2019-2020年六年级数学上半期测试题及答案.doc VIP
- 《审计学》试题卷和答案解析.docx VIP
- 备品备件方案(通用).docx VIP
- 日积月累+和大人一起读 (2).ppt VIP
有哪些信誉好的足球投注网站
文档评论(0)