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];

    可以决定执行的顺序

  • 相关阅读:
    安装EPP的调试Zend Debugger
    PHP一周学习小结
    工作小记
    JQuery实现日期联动
    编程珠玑位图法排序
    Asp.net MVC 4 异步方法
    Powershell实现创建zip压缩文件
    使用JustDecompile修改程序集
    Asp.net MVC 3 异步操作
    HTAs文件应用
  • 原文地址:https://www.cnblogs.com/leo-92/p/4323773.html
Copyright © 2011-2022 走看看