多线程
文章平均质量分 68
MrRightZJ
这个作者很懒,什么都没留下…
展开
-
多线程 - 10.NSOperation的使用示例
1.NSOperationQueue概述NSOperationQueue的作用 NSOperation可以调用start方法来执行任务,但默认是同步执行的如果将NSOperation添加到NSOperationQueue(操作队列)中,系统会自动异步执行NSOperation中的操作添加操作到NSOperationQueue中-(void)addOperation:(NSOperation原创 2015-08-22 19:04:06 · 480 阅读 · 0 评论 -
多线程 - 07.GCD函数和队列组合示例
1.GCD基本使用(异步函数+并发队列)可以看到,系统自动给开辟了新的子线程来执行这三个任务,且由于时并发队列,系统开辟了三个子线程注意:开辟多少个子线程由系统决定,三个任务依次从队列中取出放在不同的子线程执行,但是由于CPU调度子线程是由系统控制的,所以任务执行的顺序不定,并没有违背队列中任务的先进先出原则-(void)touchesBegan:(NSSet *)touches withEv原创 2015-08-21 22:40:05 · 477 阅读 · 0 评论 -
多线程 - 06.GCD概述
1.GCD简介全称是Grand Central Dispatch,可译为“牛逼的中枢调度器”纯C语言,但是提供了非常多功能强大的函数,非常方便GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程)程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码2.任原创 2015-08-21 20:23:04 · 438 阅读 · 0 评论 -
多线程 - 04.线程状态以及线程安全
1.线程的状态线程在从创建到销毁的过程中有多种状态,对应如下: 新建(New):当新建一个子线程时,线程处于新建状态就绪(Runnable):调用[NSThread start]方法时,线程进入就绪状态或CPU调度完当前线程后,再去调用其他线程时,sleep状态结束或者得到同步锁时重新恢复就绪状态运行(Running):当CPU调度当前线程时,线程处于运行状态阻塞(Blocked):当线程原创 2015-08-20 21:17:34 · 731 阅读 · 0 评论 -
多线程 - 08.GCD其他使用
1.GCD线程之间的通信使用异步函数+除了主队列之外的队列创建子线程,在子线程中执行下载操作(耗时操作)在子线程中添加任务到主队列(更新UI操作),同步异步都可-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ // 1.创建并发队列 dispatch_queue_t queue = dispatch原创 2015-08-22 19:00:27 · 563 阅读 · 0 评论 -
多线程 - 05.线程间的基础通信操作
1.概述线程间通信概念:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信线程间通信的体现 1个线程传递数据给另1个线程在1个线程中执行完特定任务后,转到另1个线程继续执行任务线程间通信常用方法// 回到主线程- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDo原创 2015-08-20 21:57:39 · 434 阅读 · 0 评论 -
多线程 - 01.多线程概述
1.进程进程是指在系统中正在运行的一个应用程序每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内比如同时打开迅雷、Xcode,系统就会分别启动2个进程通过“活动监视器”可以查看Mac系统中所开启的进程2.线程1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程),进程本身是不具备执行任务的能力的一个进程(程序)的所有任务都在线程中执行比如使用酷狗播放音乐、使用原创 2015-08-20 21:10:42 · 487 阅读 · 0 评论 -
多线程 - 12.RunLoop总结
1.RunLoop概述参照苹果官方文档,官方API文档RunLoops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop可以让你的线程在有任务的时候执行任务,而没任务的时候处于休眠状态。基本作用如下:保持程序的持续运行处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)节省CPU资源,提高原创 2015-08-23 17:06:04 · 607 阅读 · 0 评论 -
多线程 - 09.NSOperation基本使用
1.概述NSOperation的作用 配合使用NSOperation和NSOperationQueue也能实现多线程编程NSOperation和NSOperationQueue实现多线程的具体步骤 先将需要执行的操作封装到一个NSOperation对象中然后将NSOperation对象添加到NSOperationQueue中系统会自动将NSOperationQueue中的NSOperat原创 2015-08-22 19:01:13 · 389 阅读 · 0 评论 -
多线程 - 13.RunLoop应用场景
1.定时器场景通过timer开头的类方法创建定时器时,必须将NSTimer添加到RunLoop中, 才能执行定时器 将NSTimer添加到主线程NSRunLoop的默认模式下, 只有主线程NSRunLoop当前是默认模式才会执行timer将NSTimer添加到主线程NSRunLoop的追踪模式,只有主线程NSRunLoop当前是追踪模式才会执行timerNSRunLoopCommonMode原创 2015-08-24 12:28:13 · 797 阅读 · 0 评论 -
多线程 - 11.图片缓存技术(SDWebImage框架内部实现)
1.图片缓存概述在iOS项目开发中,我们经常需要从网络上获取图片显示到我们的界面上,示例界面 图片Image利用UITableView实现上述应用,若是我们直接在设置cell内容的数据源方法中直接通过从网络上获取的数据设置图片,会造成两个问题: 我们一般将耗时操作放在子线程中执行,若是放在主线程中(当图片资源较大时)会阻塞主线程另外,在我们滑动cell时,会造成图片的重复下载2.解决图片原创 2015-08-22 23:27:17 · 1059 阅读 · 0 评论