目录
一 基本概念
二 OC中的多线程
1 NSThread(基本不用)
2 GCD(Grand Central Dispatch)
3 NSOperation与Queue
4 Pthread
一 基本概念
多线程按字面意思是同步完成多项任务,提高了资源的使用效率,从硬件、操作系统、应用软件不同的角度去看,多线程被赋予不同的内涵。对于硬件:现在市面上多数的CPU都是多核的,多核的CPU运算多线程更为出色;从操作系统角度:是多任务,现在用的主流操作系统都是多任务的,可以一边听歌、一边写博客;对于应用来说:多线程可以让应用有更快的回应,可以在网络下载时,同时响应用户的触摸操作。在iOS应用中,对多线程最初的理解,就是并发。
二 OC中的多线程
OC中的多线程是Cocoa框架下的多线程,通过了Cocoa的封装,可以让我们创建的对象。
OC中的多线程的创建方式:
1 NSThread(基本不用)
创建和启动线程 有3种方式(一个 NSThread 对象就代表一条线程)
1.1)减号方法 alloc init
1.2)加号方法 调用detachNewThreadSelector 方法
[NSThread detachNewThreadSelector:@selector(run) toTarget:self withObject:nil];
1.3)隐式创建 [self performSelectorBackground:@seletor()withObject:nil];
2 GCD(Grand Central Dispatch)
GCD的API接口为C语言的函数,函数参数中多数有Block。
3 NSOperation与Queue 本人用得最多的一种多线程编程方式。
4 Pthread
跨平台,适用于多种操作系统,可移植性强,是一套纯C语言的通用API,且线程的生命周期需要程序员自己管理,使用难度较大,通常不使用