有时候GCD不一定好用,NSOperationQueue更适合需求
1、取消某个操作;
2、指定操作间的依赖关系;
3、通过键值观察机制(kvo)监控NSOperation对象的属性;
4、指定操作的优先级;
5、重用NSOperation对象。
系统中用到NSOperationQueue的地方
[[NSNotificationCenter defaultCenter] addObserverForName:(nullable NSNotificationName) object:(nullable id) queue:(nullable NSOperationQueue *) usingBlock:^(NSNotification * _Nonnull note) {
}];
要想确定哪种方案更佳,最好还是测试一下性能。