NSOperationQueue

来源:互联网 发布:淘宝店铺年费 编辑:程序博客网 时间:2024/05/21 11:26

## GCD的队列类型

- 并发队列

    - 自己创建的

    - 全局

- 串行队列

    - 主队列

    - 自己创建的


## NSOperationQueue的队列类型

- 主队列

    - [NSOperationQueue mainQueue]

    - 凡是添加到主队列中的任务(NSOperation),都会放到主线程中执行

- 非主队列(其他队列)

    - [[NSOperationQueue alloc] init]

    - 同时包含了:串行、并发功能

    - 添加到这种队列中的任务(NSOperation),就会自动放到子线程中执行


#prom mark  



 NSOperationQueue*queue=[[NSOperationQueue alloc]init];

    

    NSInvocationOperation*opartion=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(downLoadData) object:nil];

    

    NSInvocationOperation*opartion1=[[NSInvocationOperation alloc]initWithTarget:self selector:@selector(downLoadData1) object:nil];

    

    NSBlockOperation*blockOperation=[NSBlockOperation blockOperationWithBlock:^{

        

        NSLog(@"2233");

    }];

    [blockOperation addExecutionBlock:^{

        NSLog(@"3333");

    }];

    

    [blockOperation addExecutionBlock:^{

        NSLog(@"4444");

    }];

    WNOperation*wnOperation=[[WNOperation alloc]init];

    //不需要start,放到NSOperationQueue中的任务,会自动执行

    [queue addOperation:opartion];

    [queue addOperation:opartion1];

    [queue addOperation:blockOperation];

    [queue addOperation:wnOperation];


最后一种方法是自定义Operation

然后重写main方法。比如一些特别复杂的事情,我们需要自定义Operation









0 0
原创粉丝点击