iOS —— NSThread、NSOperation、GCD多线程的优缺点
2014-08-01 09:57
393 查看
iOS
多线程编程 之NSThread、GCD的优缺点
2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)
3、GCD 全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)
这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。
优点:NSThread 比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销
Cocoa operation
优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。 Cocoa operation 相关的类是 NSOperation ,NSOperationQueue。NSOperation是个抽象类,使用它必须用它的子类,可以实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。创建NSOperation子类的对象,把对象添加到NSOperationQueue队列里执行。
GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。在iOS4.0开始之后才能使用。GCD是一个替代诸如NSThread,
NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。现在的iOS系统都升级到6了,所以不用担心该技术不能使用。
第一个是实例方法,第二个是类方法
[NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:nil];
NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:)
object:nil]; [myThread start];
我们可以使用指令 @synchronized 来简化 NSLock的使用,这样我们就不必显示编写创建NSLock,加锁并解锁相关代码。
- (void)doSomeThing:(id)anObj {
@synchronized(anObj) {
// Everything between the braces is protected by the @synchronized directive.
}
}
多线程编程 之NSThread、GCD的优缺点
一、 iOS有三种多线程编程的技术,分别是:
1.、NSThread2、Cocoa NSOperation (iOS多线程编程之NSOperation和NSOperationQueue的使用)
3、GCD 全称:Grand Central Dispatch( iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用)
这三种编程方式从上到下,抽象度层次是从低到高的,抽象度越高的使用越简单,也是Apple最推荐使用的。
二、 三种方式的有缺点介绍:
NSThread:优点:NSThread 比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销
Cocoa operation
优点:不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上。 Cocoa operation 相关的类是 NSOperation ,NSOperationQueue。NSOperation是个抽象类,使用它必须用它的子类,可以实现它或者使用它定义好的两个子类:NSInvocationOperation 和 NSBlockOperation。创建NSOperation子类的对象,把对象添加到NSOperationQueue队列里执行。
GCD
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。在iOS4.0开始之后才能使用。GCD是一个替代诸如NSThread,
NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。现在的iOS系统都升级到6了,所以不用担心该技术不能使用。
第一个是实例方法,第二个是类方法
[NSThread detachNewThreadSelector:@selector(doSomething:) toTarget:self withObject:nil];
NSThread* myThread = [[NSThread alloc] initWithTarget:self selector:@selector(doSomething:)
object:nil]; [myThread start];
我们可以使用指令 @synchronized 来简化 NSLock的使用,这样我们就不必显示编写创建NSLock,加锁并解锁相关代码。
- (void)doSomeThing:(id)anObj {
@synchronized(anObj) {
// Everything between the braces is protected by the @synchronized directive.
}
}
相关文章推荐
- iOS开发之多线程——NSThread、NSOperation、GCD
- IOS 多线程4种使用方法 :pThread,NSThread,GCD和NSOperation
- ios笔记-多线程相关(phread、NSThread、GCD、NSOperation)
- iOS 多线程处理 ----NSThread, NSOperation,GCD
- iOS 多线程~NSThread、NSOperation 、GCD 技术区别
- iOS 多线程~NSThread、NSOperation 、GCD 技术区别~思维导图
- iOS多线程学习-NSThread、Cocoa NSOperation、GCD
- IOS多线程NSObject,NSThread,NSOperation,GCD
- 多线程GCD, NSThread, NSOperation
- 多线程——NSThread、GCD、NSOperation
- iOS多线程管理-Thread,NSOperation,GCD的简单用法
- iOS开发——多线程、NSThread、gcd、线程间通信
- iOS多线程操作(NSThread,GCD,NSNSOperation )
- [笔记]iOS开发之多线程GCD和NSOperation基本使用
- iOS多线程编程详情(GCD、NSThread、NSOperation)
- 关于iOS多线程Pthreads, NSThread, GCD, NSOperation & NSOperationQueue
- iOS多线程,NSThread ,NSOperationQueue ,GCD
- IOS中的多线程实现:NSThread、GCD和NSOperation
- 多线程卖票之-NSThread、NSOperation、GCD
- iOS开发笔记5:多线程之NSThread、NSOperation及GCD