标签:com class blog div code string tab log ble cti line
NSOperationQueue是一套基于Objective-c语言的API。
NSOperationQueue:比较安全
GCD:没有NSOperationQueue安全,但使用起来简单,快速,还提供了一些操控底层的方法。实际开发中还是以GCD为主。
1.定义一个任务队列。
2.定义一个任务。
3.把任务添加到队列中。一旦任务被添加到队列中,任务会马上被调度执行。
NSOperationQueue的一个实例对象就是一个自定义队列,主队列通过[NSOperationQueue mainQueue]获取。
NSOperation是一个抽象类,定义一个任务对象只能继承并重写它,苹果也提供了两个它的子类NSInvocationOperation、NSBlockOperation,我们一般用这个子类。
NSOperationQueue实现的自定义队列都是并行,下面是
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 |
//1.定义4个队列NSBlockOperation
* operation1 = [NSBlockOperation
blockOperationWithBlock:^ { NSLog(@"1.下载图片"); }];NSBlockOperation
* operation2 = [NSBlockOperation
blockOperationWithBlock:^ { NSLog(@"2.修饰图片"); }];NSBlockOperation
* operation3 = [NSBlockOperation
blockOperationWithBlock:^ { NSLog(@"3.保存图片"); }];NSBlockOperation
* operation4 = [NSBlockOperation
blockOperationWithBlock:^ { NSLog(@"4.显示图片"); }];//2.设置依赖关系,保证顺序执行。[operation2 addDependency:operation1];[operation3 addDependency:operation2];[operation4 addDependency:operation3];//3.将任务添加到队列中去,并开始执行。[self.queue addOperation:operation1];[self.queue addOperation:operation2];[self.queue addOperation:operation3];//更新UI操作在主队列中执行,依赖关系是可以跨队列的。[[NSOperationQueue
mainQueue] addOperation:operation4]; |
IOS中的多线程【二】— NSOperation和NSOperationQueue,布布扣,bubuko.com
IOS中的多线程【二】— NSOperation和NSOperationQueue
标签:com class blog div code string tab log ble cti line
原文地址:http://www.cnblogs.com/congliang/p/3695551.html