![多线程gcd 09与主讲_第1页](http://file4.renrendoc.com/view/2b2659cbe1420b17786b0723e0268e10/2b2659cbe1420b17786b0723e0268e101.gif)
![多线程gcd 09与主讲_第2页](http://file4.renrendoc.com/view/2b2659cbe1420b17786b0723e0268e10/2b2659cbe1420b17786b0723e0268e102.gif)
![多线程gcd 09与主讲_第3页](http://file4.renrendoc.com/view/2b2659cbe1420b17786b0723e0268e10/2b2659cbe1420b17786b0723e0268e103.gif)
![多线程gcd 09与主讲_第4页](http://file4.renrendoc.com/view/2b2659cbe1420b17786b0723e0268e10/2b2659cbe1420b17786b0723e0268e104.gif)
![多线程gcd 09与主讲_第5页](http://file4.renrendoc.com/view/2b2659cbe1420b17786b0723e0268e10/2b2659cbe1420b17786b0723e0268e105.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十六节课多线程、--方法方法方法(void)method{(void)method{[self}(void)runA[selfrunB];[selfrunC];}(int)runBreturn100;}(void)runC}112…QQ
·每一个程序都有一个主线程,程序启动时创建(调用main来启动·任何有可能堵塞主线程的任务不要在主线程执行 网络iOS中的主线程的堆栈大小是从第二个线程开始都是512KB·只有主 ·NSThread每个NSThread对象对应一个线程,量级较轻·NSOperation/NSOperationQueueGrandCentralDispatchC ·NSThread:·优点:NSThread·NSOperation:·NSOperation是面向对象的:GrandCentralDispatch是由苹果开发的一个多核编程的解决方案。iOS4.0+才能使用,是替代NSThreadNSOperation的高效和强大的技术是基于C语言的11第⼀种开启新的线程调⽤NSThread*t=[[NSThreadalloc][tstart22第⼆种开启新的线程调⽤[NSThreadtoTarget:self3第三种开启新的线程调⽤[selfNSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];[threadQueueaddOperationWithBlock:^(void){NSThread*t=[NSThreadcurrentThread];if(![tisMainThread]){}NSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];NSInvocationOperation*op=[[NSInvocationOperationalloc][threadQueue在主线程上调⽤reloadData[selfwithObject:nil++(NSThread+++-[self-(void)mutableThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]for(inti=0;i<10;i++){[NSThread}withObject:nilwaitUntilDone:NO];[pool}1.通过类别为UIImageView扩展一个方法,此方法可以异步加载 @interfaceUIImageView-(void)setImageWithURL:(NSURL*)url;·NSRunloop的基本概念·Runloops是线程相关的的基础框架的一部分。一个runloop就是一 ·NSRunLoop可以保持一个线程一直为活动状态,不会马上销毁掉。·在多线程中使用定时器必须开启Runloop,因为只有开启Runloop-(void)runThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];[NSTimerscheduledTimerWithTimeInterval:1target:selfuserInfo:nilrepeats:YES];[[NSRunLoopcurrentRunLoop]run];[poolrelease];}··GrandCentralDispatch( )是Apple开发的一个多核编程的解决方法,在MacOSX10.6雪豹中首次推出,并随后被引入到了iOS4.0中。 NSThreadNSOperationQueueNSInvocationOperation 应文件描述符、machports(Machport用于OSX上的进程间通讯)、进程、计时器、信号、用户生 。这些句柄通 来并发执行 比之thread更简单易用。基于block的特性导致它能极为简单得在不同代 DispatchDispatch·DispatchQueueDispatchQueue是什么?是执行处理的等待队列。通过dispatch_async进先出(FIFO)顺序追加到Queue中处理。·DispatchQueue:1、SerialDispatchQueue(串行2、ConcurrentDispatchQueue(并行、并Dispatch··ConcurrentDispatchQueue·取决于CPU核数和CPU负荷。 ·全局队列(可能会开启多条线程dispatch_queue_tqueuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,·串行队列(只可能会开启一条线程dispatch_queue_tqueue=dispatch_queue_create("myQueue",DISPATCH_QUEUE_SERIAL);·dispatch_queue_create·dispatch_queue_create//创建SerialDispatchQueuedispatch_queue_create("com.wxhl.serial1",NULL);//创建ConcurrentDispatchQueuedispatch_release·在iOS6之后, 兼容ARC,这意味着不再需要用dispatch_retain或者·dispatch_get_main_queue·MainDispatchQueue正如名称中的Main一样,是在主 MainDispatchQueueSerialDispatchQueue。·一切跟UI有关的操作必须放在主 执行。所以要追加到MainDispatchQueue。·GlobalDispatchQueueConcurrentDispatchQueue。·GlobalDispatchQueue有4DISPATCH_QUEUE_PRIORITY_HIGHDISPATCH_QUEUE_PRIORITY_DEFAULTDISPATCH_QUEUE_PRIORITY_LOWDISPATCH_QUEUE_PRIORITY_BACKGROUND( eeee·异步操作:dispatch_async·asyncasynchronousBlockDispatchQueue中。dispatch_async··同步追加Block块,与上面相反。在追加Block结束之前,dispatch_sync函数会一·使用dispatch_sync容易引起死锁,慎重使用。比如在主线 列里面添加任务的操作就会引起死锁。/*死锁1*/dispatch_queue_tqueue=
/*死锁2*/dispatch_queue_tqueue=dispatch_async(queue,^{··dispatch_group_async·dispatch_group_asyncdispatch_group_notifydispatch_group_waitdispatch_queue_tqueue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);dispatch_group_tgroup=dispatch_group_create();dispatch_group_async(group,queue,^{NSLog(@"block1");});dispatch_group_async(group,queue,^{NSLog(@"block2");});dispatch_group_async(group,queue,^{NSLog(@"block3");});/*汇总结果()dispatch_group_wait(group,DISPATCH_TIME_FOREVER);dispatch_time_ttime=dispatch_time(DISPATCH_TIME_NOW,(1ull*NSEC_PER_SEC));longresult=dispatch_group_wait(group,time);if(result==0)}dispatch·dispatch_once函数实现单例+(id)allocWithZone:(NSZone{//解决多 同样只能实例化出⼀个对象副sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环评招募合伙协议书(2篇)
- 苏科版数学八年级上册听评课记录《4-4近似数》
- 人教版地理七年级上册《 聚落》听课评课记录
- 《东汉的兴亡》听课评课记录3(新部编人教版七年级上册历史)
- 新版华东师大版八年级数学下册《16.4零整数幂与负整数指数幂科学记数法》听评课记录10
- 人教版数学八年级下册听评课记录:第20章 中位数和众数
- 小学二年级口算训练
- 苏教版小学二年级数学上册口算题卡
- 二年级安全工作计划报告范文
- 五年级下册数学听评课记录《2因数和倍数练习》人教新课标
- 中国氢内燃机行业发展环境、市场运行格局及前景研究报告-智研咨询(2024版)
- 《自然保护区划分》课件
- 2024年湖南高速铁路职业技术学院高职单招数学历年参考题库含答案解析
- 上海铁路局招聘笔试冲刺题2025
- 学校食堂餐厅管理者食堂安全考试题附答案
- 《商用车预见性巡航系统技术规范》
- 国旗班指挥刀训练动作要领
- 春季安全开学第一课
- 植物芳香油的提取 植物有效成分的提取教学课件
- 陕鼓集团招聘笔试题目
- 肖像绘画市场发展现状调查及供需格局分析预测报告
评论
0/150
提交评论