高级ui课件06多线程与_第1页
高级ui课件06多线程与_第2页
高级ui课件06多线程与_第3页
高级ui课件06多线程与_第4页
高级ui课件06多线程与_第5页
已阅读5页,还剩24页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无限互联是国内唯一一家专注于和iPad软件开发培训机构,到目前为止为各大公司输送了一大批优秀的iOS高级软件研发人才。随着iOS7系统的发布,我们也在陆续发布国内首套完整的iOS开发的,手把您写代码,从入门到熟练再到精通。最好的肯定,也是我们前进的最动力,我们感谢的努力,感谢对我们的支持!我们也将免费为提供最好的就业后的技术支持!:无限互联3G学院

多线程、主讲::无限互联3G学院--

方法方法方法:无限互联3G学 (void)method{(void)method{[self}(void)runA[selfrunB];[selfrunC];}(int)runBreturn100;}(void)runC}:无限互联3G学 11

2:无限互联3G学

:无限互联3G学院iOS中的主线程的堆栈大小是从第二个线程开始都是:无限互联3G学院IOS的三种多线程技术·NSThread每个NSThread对象对应一个线程,量级较轻·NSOperation/NSOperationQueueGrandCentralDispatchC:无限互联3G学 ·NSThread:

·优点:NSThread·NSOperation:·NSOperation是面向对象的:GrandCentralDispatch是由苹果开发的一个多核编程的解决方案。iOS4.0NSThread,NSOperation的高效和强大的技术是基于C语言的:无限互联3G学 无限互联是国内唯一一家专注于和iPad软件开发培训机构,到目前为止为各大公司输送了一大批优秀的iOS高级软件研发人才。随着iOS7系统的发布,我们也在陆续发布国内首套完整的iOS开发的,手把您写代码,从入门到熟练再到精通。最好的肯定,也是我们前进的最动力,我们感谢的努力,感谢对我们的支持!我们也将免费为提供最好的就业后的技术支持!:无限互联3G学院1.第⼀种开启新的线程调⽤NSThread*t=[[NSThreadalloc][tstart2.第⼆种开启新的线程调⽤[NSThreadtoTarget:self3.第三种开启新的线程调⽤[self:无限互联3G学院

NSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];[threadQueueaddOperationWithBlock:^(void){NSThread*t=[NSThreadcurrentThread];if(![tisMainThread]){}NSOperationQueue*threadQueue=[[NSOperationQueuealloc]init];NSInvocationOperation*op=[[NSInvocationOperationalloc][threadQueue在主线程上调⽤reloadData[selfwithObject:nil:无限互联3G学院·NSThread的常用方法+(NSThread+++-:无限互联3G学 [self-(void)mutableThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]for(inti=0;i<10;i++){[NSThread}withObject:nilwaitUntilDone:NO];[pool}:无限互联3G学 1.通过类别为UIImageView扩展一个方法,此方法可以异步加载,异步加载通@interface@interfaceUIImageView-(void)setImageWithURL:(NSURL:无限互联3G学 NSRunLoop的基本概念·NSRunloop的基本概念·Runloops是线程相关的的基础框架的一部分。一个runloop就是一 ·NSRunLoop可以保持一个线程一直为活动状态,不会马上销毁掉。:无限互联3G学 ·在多线程中使用定时器必须开启Runloop,因为只有开启Runloop-(void)runThreadNSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];[NSTimerscheduledTimerWithTimeInterval:1target:selfuserInfo:nilrepeats:YES];[[NSRunLoopcurrentRunLoop]run];[poolrelease];}:无限互联3G学 无限互联是国内唯一一家专注于和iPad软件开发培训机构,到目前为止为各大公司输送了一大批优秀的iOS高级软件研发人才。随着iOS7系统的发布,我们也在陆续发布国内首套完整的iOS开发的,手把您写代码,从入门到熟练再到精通。最好的肯定,也是我们前进的最动力,我们感谢的努力,感谢对我们的支持!我们也将免费为提供最好的就业后的技术支持!:无限互联3G学院简介··GrandCentralDispatch( )是Apple开发的一个多核编程的解决方法,在MacOSX10.6雪豹中首次推出,并随后被引入到了iOS4.0中。是一个替代诸如NSThreadNSOperationQueueNSInvocationOperation 应文件描述符、machports(Machport用于OSX上的进程间通讯)、进程、计时器、信号、用户生成。这些句柄通过来并发执行·GCD是一项跨时代的技术,纯C语言、但是又溶有面向对象思想、基于Block,用我 比之thread更简单易用。基于block的特性导致它能极为简单得在不同代 :无限互联3G学院DispatchQueu·DispatchQueueDispatchQueue通过dispatch_async等函数,按照先进先出(FIFO)顺序追加到Queue中处理。·Dispatch1、SerialDispatchQueue(串行2、ConcurrentDispatchQueue(并行、并:无限互联3G学院DispatchQueu·ConcurrentDispatchQueue取决于CPU核数和CPU负荷。 :无限互联3G学院dispatch_queue_tqueuedispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,dispatch_queue_tqueue=dispatch_queue_create("myQueue",DISPATCH_QUEUE_SERIAL);:无限互联3G学院使用·dispatch_queue_create//创建SerialDispatchQueue//创建SerialDispatchQueuedispatch_queue_create("com.wxhl.serial1",NULL);dispatch_queue_create("com.wxhl.serial2",DISPATCH_QUEUE_SERIAL);//创建ConcurrentDispatchQueue ·在iOS6之后, 兼容ARC,这意味着不再需要用dispatch_retain或者:无限互联3G学院使用·dispatch_get_main_queue·MainDispatchQueue正如名称中的Main一样,是在主 MainDispatchQueueSerialDispatchQueue。 执行。所以要追加到MainDispatchQueue。·dispatch_get_global_queue·GlobalDispatchQueueConcurrentDispatchQueue。·GlobalDispatchQueue4DISPATCH_QUEUE_PRIORITY_HIGHDISPATCH_QUEUE_PRIORITY_DEFAULTDISPATCH_QUEUE_PRIORITY_LOWDISPATCH_QUEUE_PRIORITY_BACKGROUND(:无限互联3G学院使用·asyncasynchronousBlockDispatchQueuedispatch_async·BlockBlock结束之前,dispatch_sync函数会一·使用dispatch_sync容易引起死锁,慎重使用。比如在主线 列里面添加任务的操作就会引起死锁。/*死锁/*死锁1*/dispatch_queue_tqueue=dispatch_sync(queue,^{/*死锁2*/dispatch_queue_tqueue=dispatch_async(queue,^{dispatch_sync(queue,^{:无限互联3G学院高级用法·dispatch_group_async·dispatch_group_asyncdispatch_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_notify(group,dispatch_get_main_queue(),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)//DispatchGroup}dispatch:无限互联3G学院实现单例·dispat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论