NSOperation 的优势
- 控制并发数
- 任务见的依赖关系
- 可取消、暂停、恢复等
- 状态的支持
GCD的优势
- 系统级别的调度,效率高
- 基于block的使用,更加直观。
从上面可以看出,如果你对任务的过程需要高度的可控,NSOperation是个很好的选择,但也很明显,需要写更多的代码。
从设计模式上来看,NSOperation 更加面向对象,有很好的封装、复用。是多线程的抽象,完成了很多GCD很难完成的操作。应该是多线程编程的第一选择。
GCD面向过程,代码更简洁。
NSOperation 的优势
GCD的优势
从上面可以看出,如果你对任务的过程需要高度的可控,NSOperation是个很好的选择,但也很明显,需要写更多的代码。
从设计模式上来看,NSOperation 更加面向对象,有很好的封装、复用。是多线程的抽象,完成了很多GCD很难完成的操作。应该是多线程编程的第一选择。
GCD面向过程,代码更简洁。