多線程篇-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];
    循環

結束

本章到此結束
            歡迎各位碼友隨意轉載並指正
相關文章
相關標籤/搜索