美文网首页
多线程为什么多使用GCD而不用NSOperation

多线程为什么多使用GCD而不用NSOperation

作者: tdwydan1 | 来源:发表于2016-09-01 09:51 被阅读0次

    ①:先搞清两者的关系,NSOpertaionQueue是基于GCD的OC封装.

    ②:GCD仅仅支持先入先出队列,而NSOpertaionQueue中的队列可以设置优先级,调整操作执行顺序.

    GCD不能设置异步操作之间的依赖关系.但是使用NSOpertaionQueue就可去设置一个操作依赖另一个操作的数据.

    ③:NSOperationQueue支持KVO,意味着我们可以观察任务的执行状态。

    现在开始回答问题:

    性能上:①:GCD更接近底层,而NSOperationQueue是它的高级封装,所以如果我们不需要NSOperationQueue封装的设置并发数,操作执行顺序,操作依赖关系这些功能的话, (我们使用GCD即可,它接近底层当然速度更快,性能更高).

    ②:如果要设置操作间的顺序性,依赖关系,GCD的话需要实现此功能就需要更多的代码,那么使用NSOperationQueue就不需要那么繁琐,它本身就封装了这些功能

    ③:如果异步操作过程需要很多被交互和呈现UI,那么就使用NSOperationQueue

        如果任务之间不怎么需要依赖,而需要更高的并发能力,是效率,那么就使用GCD即可

    相关文章

      网友评论

          本文标题:多线程为什么多使用GCD而不用NSOperation

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