美文网首页
NSOperation、NSOperationQueue 学习

NSOperation、NSOperationQueue 学习

作者: 嗯哎嘶唠咯 | 来源:发表于2017-08-08 10:44 被阅读26次

    NSOperation 和 GCD 对比

    GCD 是基于C的底层的API,NSOperation 是基于 GCD 实现的面向对象的解决方案。
    GCD 更加轻量级 ,以FIFO的方式 执行并发任务,任务的调度有系统控制; NSOperation 则更加的灵活,可以对 opration 进行 添加依赖,暂停和 回复operationqueue 等。

    NSOperation

    一、基本用法

    本身是一个抽象类,需要用到它的两个子类,分别是 NSInvocationOperation 和 NSBlockOperation。

    只在这里对博客中提到的 做一下个人的学习总结:
    在 NSInvocationOperation 使用中: 调用start 方法 默认会在当前线程 同步执行任务,只有将operation 添加到operationqueue中才会 进行异步操作


    在这种情况下,调用start方法 ,并发的执行了这4个操作(自己没有去尝试,以后还是应该自己去测试一下,加深自己对知识点的印象)

    二、自定义 operation

    1.简单的自定义:只需要重写main方法即可 (链接查看注意事项)
    2.正确的响应取消事件(“看的帖子中 ,均有这个要点”)

    在真正开始执行任务之前;
    至少在每次循环中检查一次,而如果一次循环的时间本身就比较长的话,则需要检查得更加频繁;
    在任何相对来说比较容易中止 operation 的地方。

    3.配置并发的operation (大写加粗 ,重点)

    示例代码:

    都在以下的文献中 囧rz
    

    参考文献:

    mj 老师对两者有很好的总结:
    http://www.cnblogs.com/mjios/archive/2013/04/19/3029765.html
    刘坤大大:
    https://blog.cnbluebox.com/blog/2014/07/01/cocoashen-ru-xue-xi-nsoperationqueuehe-nsoperationyuan-li-he-shi-yong/
    雷纯峰大大:
    http://blog.leichunfeng.com/blog/2015/07/29/ios-concurrency-programming-operation-queues/

    PS

    还是需要自己动手实践,才能有更深刻的印象

    相关文章

      网友评论

          本文标题:NSOperation、NSOperationQueue 学习

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