iOS线程杂谈

iOS中的多线程技术主要有NSThread, GCD和NSOperation:

串行:

串行队列一次只能执行一个任务。只有一个任务执行完成之后,下一个任务才能执行,主线程就是一个串行的队列

并行:

并行队列可以同时执行多个任务,系统会维护一个线程池来保证并行队列的执行。线程池会根据当前任务量自行安排线程的数量,以确保任务尽快执行。

1.GCD

获取主线程:

dispatch_queue_t dispatch_get_main_queue(void)

除了主线程队列,GCD提供了几个全局队列,可以直接获取使用




2.NSOPeration是一个抽象类,不能直接使用,必须使用它的子类

iOS SDK提供了两个它具体的子类:

1.NSBlockOperation (AFNetWorking使用此类)

NSBlockOperation *batchedOperation = [NSBlockOperation blockOperationWithBlock:^{

dispatch_group_notify(group, dispatch_get_main_queue(), ^{

if (completionBlock) {


completionBlock(operations);

}

});

}];

2.NSInvocationOperation

你可能感兴趣的:(iOS线程杂谈)