您的位置:首页 > 产品设计 > UI/UE

UI Thread

2016-04-08 15:27 501 查看
原文地址:Thread">UI Thread作者:我不是怕忘了吗NSThread
创建线程的几种方法:
1NSThread:
优点:NSThread 比其他两个轻量级
缺点:需要自己管理线程的生命周期,线程同步,加锁。
Cocoa operation 其子类 NSOperation ,
NSOperationQueue,
NSOperation:抽象类,使用它必须用它的子类

包括:NSlnvocationOperation,NSBlockOperation,及自定义的NSOperation

NSOperationQueue:操作队列,用来管理和控制NSOperation

包含主队列和并发队列。

#import "ViewController.h"

#import "CustomOperation.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

// Do
any additional setup after loading the view, typically from a
nib.

//创建并发任务队列 并发不一定是并行

NSOperationQueue *queue = [[NSOperationQueue alloc]
init];//这是操作队列的创建方式,是一个具体的方法

//设定队列的最大并发数

queue.maxConcurrentOperationCount = 1;

queue.suspended = YES;//指当前线程挂起,然后等属性设置为NO才开始进行代码操作

//1.向队列中添加一个新任务,任务是所有代码都在block块中

[queue
addOperationWithBlock:^{

for (NSInteger i = 0; i <
10; i++) {

NSLog(@"Operation1---%li", i);

}

}];

//2.NSBlockOperation创建一个任务

NSBlockOperation *blockOperation = [NSBlockOperation
blockOperationWithBlock:^{

for (NSInteger i = 0; i <
10; i++) {

NSLog(@"Operation2---%li", i);

}

}];

//任务执行完毕回调的block

blockOperation.completionBlock = ^{

NSLog(@"NSBlockOperation任务执行完毕");

};

//3.NSInvocationOperation创建一个任务

NSInvocationOperation *invocationOper = [[NSInvocationOperation
alloc] initWithTarget:self selector:@selector(threadMethod:)
object:@"第三个operation"];

//4.自定义任务类

CustomOperation *customOper = [[CustomOperation alloc]
init];

//任务的优先级别只能影响当前队列中还未执行的任务,如果此任务已经开始执行,则不会影响其执行顺序。

customOper.queuePriority = NSOperationQueuePriorityHigh;

//blockOperation必须依赖invocationOperation执行,即invocationOper执行完毕blockOperation才能够执行。

[blockOperation addDependency:invocationOper];

//把任务添加到并发队列中执行,四个任务并发执行

[queue
addOperation:blockOperation];

[queue
addOperation:invocationOper];

[queue
addOperation:customOper];

queue.suspended = NO;

}

- (void)threadMethod:(NSString *)object
{

for
(NSInteger i = 0; i < 10; i++) {

NSLog(@"Operation3---%li",
i);

}

}

图片的异步加载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: