多线程
文章平均质量分 58
上进求知,认真思辨
17611006395
展开
-
iOS 开发NSRunLoop和AutoreleasePool详解
运行循环(消息循环)和自动释放池的关系图解运行循环在 iOS 开发中几乎不用,但是概念的理解却非常重要。自动释放池的创建和销毁 运行循环检测到事件并启动后,就会自动创建自动释放池.一次完整的运行循环结束之前,自动释放池就会被销毁.作用: 保证程序不退出。 负责监听所有事件,例如:手势触摸,时钟触发,网络加载数据完成等。特性: 没有事件时,会休眠(省电),一旦监听到事件,会立即响应。原创 2016-11-29 22:42:02 · 590 阅读 · 0 评论 -
iOS 开发 多线程详解之GCD应用延迟操作,单例设计模式,调度组
GCD延时操作特点:时间特别精确- (void)afterDemo { NSLog(@"start"); /* 参数1 : dispatch_time_t when : 延迟多长时间,精确到纳秒 参数2 : dispatch_queue_t queue : 在哪个队列 参数3 : dispatch_block_t block : 执行哪个任务 *原创 2016-11-24 23:09:18 · 735 阅读 · 0 评论 -
iOS 开发 多线程详解之GCD任务和队列
队列GCD的队列可以分为2大类型 :串行队列(Serial Dispatch Queue)让任务一个接着一个有序的执行:不管队列里面放的是什么任务.一个任务执行完毕后,再执行下一个任务.同时只能调度一个任务执行.并发队列(Concurrent Dispatch Queue)可以让多个任务并发/同时执行.自动开启多个线程同时执行多个任务.同时可以调度多个任务执行并发队列的并发功能只有内部的任原创 2016-11-24 22:30:45 · 965 阅读 · 0 评论 -
iOS 开发 多线程详解之NSThread线程通信的操作与控制
线程间通信线程在运行过程中,可能需要与其它线程进行通信。我们可以使用 NSObject 中的一些方法: 在应用程序主线程中做事情:performSelectorOnMainThread:withObject:waitUntilDone: performSelectorOnMainThread:withObject:waitUntilDone:modes:在指定线程中做事情:performSelect原创 2016-11-24 00:08:48 · 621 阅读 · 0 评论 -
iOS 开发 多线程详解之GCD基本概念
GCD简介全称是Grand Central Dispatch纯C语言的,提供了非常多强大的函数.GCD的优势GCD是苹果公司为多核的并行运算提出的解决方案.GCD会自动利用更多的CPU内核(比如双核、四核)GCD会自动管理线程的生命周期(创建线程、调度任务、销毁线程).程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码.GCD的核心将任务添加到队列任务 : 执行什原创 2016-11-23 23:47:59 · 322 阅读 · 0 评论 -
iOS 开发 多线程详解之NSThread异步线程下载网络图片
1.定义属性@interface ViewController ()/// 图片视图@property (nonatomic,weak) UIImageView *imageView;@end2.加载视图层次loadView : 手动创建根视图,实现了这个方法视图控制器的view就不会从SB中加载了.当self.view==nil的时候就会调用这个方法.- (void)setUpUI {原创 2016-11-23 23:36:07 · 495 阅读 · 0 评论 -
iOS 开发 多线程详解之线程安全(资源共享)
多线程操作共享资源的问题共享资源 资源 : 一个全局的对象、一个全局的变量、一个文件.共享 : 可以被多个对象访问.共享资源 :可以被多个对象访问的资源.比如全局的对象,变量,文件.在多线程的环境下,共享的资源可能会被多个线程共享,也就是多个线程可能会操作同一块资源.当多个线程操作同一块资源时,很容易引发数据错乱和数据安全问题,数据有可能丢失,有可能增加,有可能错乱.经典案例 : 火车原创 2016-11-23 23:19:21 · 1743 阅读 · 0 评论 -
iOS 开发 多线程详解之线程属性设置
线程属性name - 线程名称threadPriority - 线程优先级stackSize - 栈区大小name - 线程名称给线程起名字,可以方便运行调试,定位BUG在大型的商业软件中,都会设计专门的线程做特定的事情,当程序崩溃时可以快速准确的定位BUGthreadPriority - 线程优先级为浮点数整形,范围在0~1之间,1最高,默认0.5,不建议修改线程优先级线程的”优原创 2016-11-23 22:49:09 · 1103 阅读 · 0 评论 -
iOS 开发 多线程详解之线程生命周期控制
0.线程状态新建 --> 就绪(在可调度线程池中,等待被CPU的调度执行) --> 运行运行 --> CPU切换到其他的线程 --> 就绪运行 --> 调用的sleep方法 --> 阻塞 --> sleep的时间到了 --> 就绪运行 --> 任务执行完成 --> 死亡运行 --> exit --> 死亡1.新建内存中创建了一个线程对象NSThread *thread = [[NSThre原创 2016-11-23 22:42:41 · 1338 阅读 · 0 评论 -
iOS 开发 多线程详解之NSThread实现多线程
NSThread实现多线程的技术方案之一.面向对象的开发思想.每个对象表示一条线程.创建线程三种方式1.对象方法创建实例化线程对象的同时指定线程执行的方法@selector(demo:). 需要手动开启线程.- (void)threadDemo1{ NSThread *thread = [[NSThread alloc] initWithTarget:self selector:原创 2016-11-23 22:14:08 · 480 阅读 · 0 评论 -
iOS 开发 多线程详解之Pthread实现多线程
pthread基础实现多线程的技术方案之一.pthread是POSIX thread的简写.表示跨平台的线程接口.多线程的开发框架,由于是跨平台的C语言框架,在苹果的头文件中并没有详细的注释.要查阅pthread有关资料,可以访问http://baike.baidu.compthread创建子线程步骤1.导入头文件#import <pthread.h>2.pthread创建子线程要使用的函原创 2016-11-23 21:57:15 · 1201 阅读 · 0 评论 -
iOS开发 多线程详解之多线程基本概念
1.多线程的目的将耗时的操作放在后台执行.避免耗时操作卡死主屏幕.网络操作也是非常耗时的.所以网络访问也要在后台执行.2.多线程的核心概念同步 & 异步进程 & 线程多线程的概念子线程 & 主线程同步 & 异步同步和异步是任务执行的两种方式同步我们之前写程序的时候代码都是从上往下,顺序执行的,就叫做同步执行.1个人执行多个任务,是要依次执行的.因为1个人同一时间只能执行1个任务.原创 2016-11-23 21:40:20 · 505 阅读 · 0 评论 -
iOS 开发 多线程详解之NSOperation实现多线程
NSOperation简介@interface NSOperation : NSObject 1.他是一个抽象类,无法直接使用.但是我们可以使用它的子类.作为父类约束子类共有的属性和方法2.子类 - 操作默认是异步的. NSBlockOperation NSInvocationOperation 自定义NSOperation3.队列 - 默认是并发的. @in原创 2016-11-25 00:05:17 · 836 阅读 · 0 评论