美文网首页
NSOperationQueue && GCD

NSOperationQueue && GCD

作者: CharmecarWang | 来源:发表于2018-11-02 18:26 被阅读0次

GCD是纯C的API,任务用块表示,块是个轻量级数据结构。而NSOperationQueue是OC对象
哪些情况下应该使用GCD?

  • 如果要实现同步机制,建议优先选择GCD而不是@synchronized或者NSLock。
  • 如果代码只执行一次,使用dispatch_once更方便。

哪些情况下更应该使用NSOperation比?

  • 取消某个操作。
    在NSOperation对象上调用cancel方法,该方法会设置对象内的标志位,用以表明此任务不需执行了。但是已经启动的任务无法取消。而GCD那套架构是“安排好任务之后就不管了”。

  • 指定操作间的依赖关系。

  • 通过键值观测机制监控NSOperation对象的属性。
    NSOperation对象有很多属性都适合通过KVO来监听。比如可以通过isCancelled属性来判断是否已取消。还可以通过isFinished来判断任务是否已经完成。

*指定操作的优先级。
操作的优先级表示此操作与队列中其他操作之间的优先关系。优先级高的先执行,优先级低的后执行。

  • 重用NSOperation对象。
    系统内置了NSOperation(NSBlockOperation)子类供开发者使用,要是不想使用,可以自己创建。

相关文章

网友评论

      本文标题:NSOperationQueue && GCD

      本文链接:https://www.haomeiwen.com/subject/pvfmtqtx.html