多线程篇-NSOperation-方法使用

NSOperation-方法使用

1、并发数

  • 简介并发

    (1)该属性控制队列是串行执行仍是并发执行code

    (2)若是最大并发数等于1,那么该队列是串行的,若是大于1那么是并行的blog

    (3)系统的最大并发数有个默认的值,为-1,若是该属性设置为0,那么不会执行任何任务
  • 代码队列

    //1.建立队列
    NSOperationQueue *queue = [[NSOperationQueue alloc]init];
    //2.设置最大并发数
    queue.maxConcurrentOperationCount = 2;
  • 补充get

    设置同时最大并发操做数量
    • WIFI: 5~6条
    • 2G/3G/4G:2~3条

2、队列的取消,暂停和恢复

- (void)cancelAllOperations
        取消队列的全部操做。
        也能够调用:NSOperation的-(void)cancel方法取消单个操做

    @property (getter=isSuspended) BOOL suspended;

    - setSuspended:(BOOL)b

     YES表示暂停队列,NO表示回复队列


    if (self.opQueue.isSuspended) {
        NSLog(@"继续");
        self.opQueue.suspended = NO;
    } else {
        NSLog(@"暂停");
        self.opQueue.suspended = YES;
    }

3、操做依赖

  • 简介it

    一、创建操做之间的执行顺序关系
    
    二、若要创建操做之间的依赖关系,必须在操做被添加到队列以前创建
  • 代码io

    -(void)demo{
    //建立队列
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    
    //建立三个任务
    NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
        //任务1代码
        NSLog(@"operation1----%@",[NSThread currentThread]);
    }];
    NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
        //任务2代码
        NSLog(@"operation2----%@",[NSThread currentThread]);
    }];
    NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
        //任务3代码
        NSLog(@"operation3----%@",[NSThread currentThread]);
    }];
    
    //operation1 依赖于 operation2
    [operation1 addDependency:operation2];
    //operation2 依赖于 operation3
    [operation2 addDependency:operation3];
    
    //添加到队列中区
    [queue addOperation:operation1];
    [queue addOperation:operation2];
    [queue addOperation:operation3];
    
    NSLog(@"-------------------");
    }

  • 补充class

    不能循环依赖(不能A依赖于B,B又依赖于A)。
    objc //把上处地方更改一下 //operation1 依赖于 operation2 [operation3 addDependency:operation2]; //operation2 依赖于 operation3 [operation2 addDependency:operation3];
    循环

结束

本章到此结束
            欢迎各位码友随意转载并指正
相关文章
相关标签/搜索