1、GCD的两个核心概念
- 任务:执行什么操作
- 队列:用来存放任务
2、将任务添加到队列中
- GCD会将队列中的任务取出,放到对应的线程中执行
- 任务遵循队列的FIFO原则-先进先出
3、GCD有两种用来执行任务的函数
- 同步
dispatch_sync(dispatch_queue_t queue,dispatch_block_t block);
- 异步
dispatch_async(dispatch_queue_t,,dispatch_block_t block);
同步和异步的区别
同步:只能在当前的线程中执行任务,不能开启新的线程
异步:可以新的线程中执行任务,可以开启新的线程
4、GCD有两种队列
- 并发队列:可以多个任务同时执行(DISPATCH_QUEUE_SERIAL),并且只有在异步函数中在有效
- 串行队列:任务只能一个接一个的执行,只有当前任务执行完毕才能执行下一个任务