iOS多线程GCD
源于这篇文章的总结,学习下。
开始之前先说下自己一直都迷惑的地方,搞不懂为什么有了同步异步任务还要并行串行干嘛,直接用任务来区分不就行了,希望后面可以解答。
队列
- 串行队列
- 有任务正在执行,不允许插入任务,即不允许任务阻塞,但是可以被别的队列任务阻塞
- 并行队列
任务
- 同步任务
- 立即执行
- 必须等待任务结束
- 任务完成后,恢复之前的原任务
- 异步任务
- 不定时间运行
- 不用等待任务结束
// 同步任务
// current thread - thread 0
queue.sync {
// current thread thread1 = thread0
}
// 异步队列
queue.async {
// current thread thread1 != thread0
}