| GCD | NSOperationQueue |
|---|---|
| GCD是C的函数封装 | NSOperation是Objective-C类,可以子类化。底层由GCD实现。 |
| 支持取消整个Queue的任务,支持block任务取消dispatch_block_cancel | 支持取消单个NSOperation或整个Queue的任务 |
| 支持暂停和恢复dispatch_suspend 和 dispatch_resume | 支持队列暂停和恢复queue.suspended |
| 通过group来实现 | 支持任务之间的依赖关系 |
| 队列具有优先级 | 任务具有优先级 |
| GCD 是严格的队列,先进先出 FIFO | NSOperation可以改动 优先级(或者说服务质量)改变执行顺序 |
| GCD信号量dispatch_semaphore | 可以设置最大并发数 |
| 可以采用KVO监听任务状态 | |
| GCD性能更佳,使用简单 | NSOperationQueue更灵活,框架封装往往采用NSOperationQueue |
GCD和NSOperationQueue的比较
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。