溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

線程 隊(duì)列 創(chuàng)建線程

發(fā)布時(shí)間:2020-07-05 16:32:21 來源:網(wǎng)絡(luò) 閱讀:278 作者:緣起愿落 欄目:開發(fā)技術(shù)


    隊(duì)列會(huì)幫我們創(chuàng)建一個(gè)輔助線程 . 里面只能添加NSOperation 以及子類的對(duì)象

    NSOperation 是一個(gè)操作單元 ,用來執(zhí)行方法 , 是一個(gè)抽象類 , 必須子類化或者使用系統(tǒng)創(chuàng)建好的子類         (NSInvocationOperation 和 NSBlockOperation)
    NSOperation 是最小的操作單元, 只能執(zhí)行一次

    

    隊(duì)列 : 先進(jìn)先出
     棧 :  先進(jìn)后出
    
    
     隊(duì)列里涉及到 串行 和 并行
     串行: 一次只能執(zhí)行一個(gè)任務(wù)
     并行: 一次可以執(zhí)行多個(gè)任務(wù)



     
    第一步 : 創(chuàng)建  InvocationOperation

    NSInvocationOperation * invocation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(banZhuan) object:nil];
    
   第二步 : 執(zhí)行 不添加到隊(duì)列中時(shí) .會(huì)在主線程中執(zhí)行
   // [invocation start];



  創(chuàng)建  BlockOperation

    NSBlockOperation * block = [NSBlockOperation blockOperationWithBlock:^{
        [self banZhuan];
    }];
    
     第二步: 執(zhí)行 不添加到隊(duì)列中時(shí) .會(huì)在主線程中執(zhí)行
  //  [block start];



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

    只要把操作單元添加到隊(duì)列中就會(huì)執(zhí)行
      [queue addOperation:block];
       

    最大并行數(shù)  設(shè)置 1 串行  大于 1 并行
    [queue setMaxConcurrentOperationCount:1];
    
    
    [queue addOperations:@[invocation , block] waitUntilFinished:NO];
    [queue release];
    
    




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI