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

    可以决定执行的顺序

  • 相关阅读:
    linux CGI GET POST 用户登录
    linux内核 简化版ksetexample.c解析
    定制.vimrc配置文件
    procfs信息读取实现案例
    基于Extent 的文件存储(fiemap)
    inode_operations介绍
    Linux 文件系统概述
    linux硬链接与软连接的区别
    procfs读写信息实例
    VC 常见问题百问 20080129 13:37 271人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/leo-92/p/4323773.html
Copyright © 2011-2022 走看看