iOS中的多线程技术主要有NSThread, GCD和NSOperation:串行:
【iOS线程杂谈】串行队列一次只能执行一个任务。只有一个任务执行完成之后,下一个任务才能执行,主线程就是一个串行的队列并行:
并行队列可以同时执行多个任务,系统会维护一个线程池来保证并行队列的执行。线程池会根据当前任务量自行安排线程的数量,以确保任务尽快执行。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