概念解释:
同步和异步决定了要不要开启新的线程
同步:在当前线程中执行任务,不具备开启新线程的能力
异步:在新的线程中执行任务,具备开启新线程的能力
并发和串行决定了任务的执行方式
并发:多个任务并发(同时)执行
串行:一个任务执行完毕后,再执行下一个任务
通过GCD可获得的三种队列
1.全局并发队列
2.主队列(跟主线程相关联的队列)
3.自定义队列
三种队列通过同步、异步方式,实验下6种方式:
1.全局并发队列,同步方式
- (void)count{
for (int i = 0; i < 5; i++) {
NSLog(@"num:%d",i);
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
//获取全局队列
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_sync(queue, ^{
NSLog(@"下载图片1---%@", [NSThread currentThread]);
[self count];
});
dispatch_sync(queue, ^{
NSLog(@"下载图片2---%@", [NSThread currentThread]);
[self count];
});
}