zoukankan      html  css  js  c++  java
  • NSOperationQueue与GCD的区别

    1. 性能上GCD更接近底层,而NSOperationQueue则更高级抽象,所以GCD在追求性能的底层操作来说,是速度最快的。这取决于使用Instruments进行代码性能分析,如有必要的话

     2. 从异步操作之间的事务性,顺序行,依赖关系。GCD需要自己写更多的代码来实现,而NSOperationQueue已经内建了这些支持

     3. 如果异步操作的过程需要更多的被交互和UI呈现出来,NSOperationQueue会是一个更好的选择。底层代码中,任务之间不太互相依赖,而需要更高的并发能力,GCD则更有优势

    下面简单介绍下NSOperationQueue的使用:

    testOperationQueue = [NSOperationQueue new]; 

    NSBlockOperation* blockOperation1 = [NSBlockOperation blockOperationWithBlock: ^(void){

    NSLog(@"......1");

    }];

    [blockOperation1 setQueuePriority: NSOperationQueuePriorityVeryLow];

    NSBlockOperation* blockOperation2 = [NSBlockOperation blockOperationWithBlock: ^(void){

    NSLog(@"......2");

    }];

    [blockOperation2 setQueuePriority: NSOperationQueuePriorityNormal];

    NSBlockOperation* blockOperation3 = [NSBlockOperation blockOperationWithBlock: ^(void){

    NSLog(@"......3");

    }];

    [blockOperation3 setQueuePriority: NSOperationQueuePriorityHigh];

    [testOperationQueue addOperations: @[blockOperation1, blockOperation2, blockOperation3] waitUntilFinished: FALSE];

    可以决定执行的顺序

  • 相关阅读:
    大道至简第二篇阅读笔记
    大道至简第一篇阅读笔记
    冲刺第十天
    冲刺第九天
    冲刺第八天
    冲刺第七天
    用java构造一个带层次的文件目录遍历器
    用java进行简单的万年历编写
    delphi 图像处理 图像左旋右旋
    delphi 图像处理 图像放大缩小
  • 原文地址:https://www.cnblogs.com/leo-92/p/4323773.html
Copyright © 2011-2022 走看看