zoukankan      html  css  js  c++  java
  • 多线程

     你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQueue,实现了什么?请描述它和GCD的区别和类似的地方(提示:可以从两者的实现机制和适用范围来描述)。

    1> GCD是纯C语言的API,NSOperationQueue是基于GCD的OC版本封装

    2> GCD只支持FIFO的队列,NSOperationQueue可以很方便地调整执行顺序、设置最大并发数量

    3> NSOperationQueue可以在轻松在Operation间设置依赖关系,而GCD需要写很多的代码才能实现

    4> NSOperationQueue支持KVO,可以监测operation是否正在执行(isExecuted)、是否结束(isFinished),是否取消(isCanceld)

    5> GCD的执行速度比NSOperationQueue快

    任务之间不太互相依赖:GCD

    任务之间有依赖或者要监听任务的执行情况:NSOperationQueue

    既然提到GCD,那么问一下在使用GCD以及block时要注意些什么?它们两是一回事儿么?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?

    Block的使用注意:

    1>   block的内存管理

    2>   防止循环retian

    l  非ARC(MRC):__block

    l  ARC:__weak\__unsafe_unretained

  • 相关阅读:
    选择语句(if else) 习题(2017/12/1)
    Java代码空格问题
    设置背景图片
    寄存器
    8086微处理器的组成和工作原理
    8086引脚
    换行的训练
    彩票 双色球 36选7
    函数
    字符串
  • 原文地址:https://www.cnblogs.com/it-k-50/p/6093650.html
Copyright © 2011-2022 走看看