线程是程序中独立运行的代码段。拥有多个线程的程序称作多线程程序。
IOS允许用户自己开辟新的线程,相对于主线程来讲,这些线程称之为子线程。
子线程和主线程都是独立运行的单元,各自执行互不影响,从而能够并发的执行。
多线程的使用在以下几个方面:
1/大量的运算(for循环的次数特别多)
2/数据读取
3/网络请求
常见的并发执行多线程--GCD的使用:
以在主界面显示下载图片为例
demo
- (void)creatConcurrentGCD
{
// 并行队列
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
// 获取所下载图片的地址
NSURL *url = [NSURL URLWithString:@"http://img.hb.aicdn.com/e271ec302ae3929bc90ab049d6813895487c2c5ec7e7- OqExcm_fw658"];
NSData *data = [NSDatadataWithContentsOfURL:url];
// 显示到界面,所有跟UI相关的内容全部都要在主线程上运行
// 返回主线程
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程的内容
UIImageView *image = [[UIImageViewalloc]initWithFrame:CGRectMake(100,300,100, 100)];
image.image = [UIImageimageWithData:data];
[self.viewaddSubview:image];
[imagerelease];
});
});
}