zoukankan      html  css  js  c++  java
  • iOS 多线程(NSOperationQueue)

    1.就基本使用

    NSInvocationOperation

    //1.创建操作对象,封装需要执行的任务
        NSInvocationOperation * operation =[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download) object:nil];
        
        //2.执行操作(默认情况下,如果操作没有放到队列queue中,都是同步执行)
        [operation start];
    
    - (void)download{
        NSLog(@"--------下载图片-----%@",[NSThread currentThread]);
    }
    

    NSBlockOperation

     //1.封装操作
        NSBlockOperation * operation=[NSBlockOperation blockOperationWithBlock:^{
            NSLog(@"--------下载图片-----%@",[NSThread currentThread]);
        }];
        
        [operation addExecutionBlock:^{
             NSLog(@"--------下载图片1-----%@",[NSThread currentThread]);
        }];
        [operation addExecutionBlock:^{
             NSLog(@"--------下载图片2-----%@",[NSThread currentThread]);
        }];
        
    
        //2.执行操作
        [operation start];
        
        //注意:只要NSBlockOperation封装的操作数>1,就会异步执行操作
    

     NSOperationQueue 操作队列

     //创建操作队列
        NSOperationQueue * queue =[[NSOperationQueue alloc]init];
        NSInvocationOperation *operation1 =[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download) object:nil];
        NSInvocationOperation * operation2 =[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(run) object:nil];
        
        NSBlockOperation * operation3 =[NSBlockOperation blockOperationWithBlock:^{
            NSLog(@"--------下载图片2-----%@",[NSThread currentThread]);
            
        }];
        
        [operation3 addExecutionBlock:^{
            NSLog(@"--------run2-----%@",[NSThread currentThread]);
    
        }];
        
        
        [queue addOperation:operation1];
        [queue addOperation:operation2];
        [queue addOperation:operation3];
     //将操作放在队列里才能异步操作
    

    *设置最大并发数

    - (void)setMaxConcurrentOperationCount:(NSInteger )cnt;

    *设置依赖

    [opetationB  addDependency:operationA];//操作B依赖于操作A       A执行完才会执行B

  • 相关阅读:
    [SUCTF 2019]Game
    [RoarCTF2019]黄金6年
    espcms代码审计第一弹
    初识搜索
    安恒2018年三月月赛MISC蜘蛛侠呀
    [De1CTF 2019]SSRF Me
    网鼎杯 fakebook
    [0CTF 2016]piapiapia
    [RoarCTF 2019]Easy Java
    [CISCN2019 华北赛区 Day1 Web1]Dropbox
  • 原文地址:https://www.cnblogs.com/wangbinbin/p/4800562.html
Copyright © 2011-2022 走看看