GCD多线程: 任务+队列
任务:
1.同步sync:不开启线程,一个执行完了,才能执行下一个。
2.异步async:开启子线程,任务一起执行。(常用异步并发)
队列:
1.串行serial:任务依次有序的执行
2.并发cnoncurret:任务一起执行(只有异步任务才有效) 实现原理:CPU在多条线程间快速的切换
// 同步执行任务
dispatch_sync(dispatch_get_global_queue(0, 0), ^{
// 任务放在这个block里
NSLog(@"我是同步执行的任务");
});
// 异步执行任务
dispatch_async(dispatch_get_global_queue(0, 0), ^{
// 任务放在这个block里
NSLog(@"我是异步执行的任务");
});
总结:
GCD将任务添加到队列(自己创建的队列或全局并发dispatch_get_global_queue(0,0)),并指定执行任务的方式(异步dispatch_async,同步dispatch_sync)
网友评论