iOS中对于多线程有3种方法:
1、Thread。
2、Operations。
3、Grand Central Dispatch。简称GCD
我用的比较多的是GCD,经常把数据加载等耗时部分放入全局中,而主线程只对一些事件、UI等操作。例如:
-(void)getImageView:(NSString *)url andImage:(UIImageView *)imageView
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
//这里进行数据加载等比较耗时的操作
NSURL *URL = [NSURL URLWithString:url];
NSData *data = [NSData dataWithContentsOfURL:URL];
UIImage *image = [[UIImage alloc] initWithData:data];
dispatch_async(dispatch_get_main_queue(), ^{
//在主线程中进行UI显示操作
imageView.image = image;
});
});
}