NSOperation 多线程

 //创建一个队列  非 主队列  如果 operation 调用 start方法的话 就只会在主线程中执行
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];

    //最大并发数 同一时间最多开多少个线程  但是添加的任务都会完成
    queue.maxConcurrentOperationCount = 3;
   
    NSBlockOperation *operation1 = [NSBlockOperation blockOperationWithBlock:^{
        NSLog(@"任务1");
    }];
    [operation1 addExecutionBlock:^{
        NSLog(@"任务4");
    }];
    NSBlockOperation *operation2 = [NSBlockOperation blockOperationWithBlock:^{
        NSLog(@"任务2");
    }];
    NSBlockOperation *operation3 = [NSBlockOperation blockOperationWithBlock:^{
        NSLog(@"任务3");
    }];
    //将操作添加到队列中,自动异步并发执行
    [queue addOperation:operation1];
    [queue addOperation:operation2];
    [queue addOperation:operation3];
    //或者 也是在子线程
    [queue addOperationWithBlock:^{
        NSLog(@"任务5");
    }];
   
posted @ 2016-05-05 01:09  aRenOuBa  阅读(143)  评论(0编辑  收藏  举报