进程是指整个程序的运行
线程:可以提高程序的运行效率(同时让程序做多中事情)
1、主线程:主要用来刷新界面
2、NSThread、NSOperation、GCD
NSThread
开辟子线程
1、
[self performSelectorInBackground:@selector(runThreadTwo) withObject:nil];
2、
[NSThread detachNewThreadSelector:@selector(runThreadTwo) toTarget:self withObject:nil];
GCD
//异步函数向并行队列添加任务
- (void)asyncGlobalQueue
{
//DISPATCH_QUEUE_PRIORITY_DEFAULT可以使用0来代替,应为这是一个枚举。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//子线程1
});
dispatch_async(queue, ^{
//子线程2
});
dispatch_async(queue, ^{
//子线程3
});
}
回到主线程
if ([NSThread isMainThread])
{
//如果是主线程执行在这
}else{//回归主线程
dispatch_sync(dispatch_get_main_queue(), ^{
//Update UI in UI thread here
}
在子线程中加载picker获取Image
[self performSelectorInBackground:@selector(loadPickerImageController)withObject:nil];
其中的loadPickerImageController 中的内容是在子线程中进行的。