同步和异步决定了要不要开启新的线程
同步:在当前线程中执行任务,不具备开启新线程的能力
异步:在新的线程中执行任务,具备开启新线程的能力
并发和串行决定了任务的执行方式
并发:多个任务并发(同时)执行
串行:一个任务执行完毕后,再执行下一个任务
开启串行
①创建新的队列
dispatch_queue_t queue4 =dispatch_queue_create("zc", NULL);
②获取主线程
dispatch_queue_t queue5 =dispatch_get_main_queue();
并发
dispatch_queue_t queue6 =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 耗时的数据处理等
NSString *urlString = [NSString stringWithFormat:@"%@",[useArray objectAtIndex:indexPath.row]];
NSURL* url = [NSURL URLWithString:urlString];
NSData *imageData =[NSData dataWithContentsOfURL:url];
UIImage *image2 =[UIImage imageWithData:imageData];
dispatch_async(dispatch_get_main_queue(), ^{
// 更新UI
UIImageView *view2 =[[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 320, 180)];
view2.image =image2;
[cell addSubview:view2];
});
});
http://www.cnblogs.com/wendingding/p/3806821.html 事例