多線程相關(guān)問題

為什么不執(zhí)行test方法 ?
performSelector :withObject:afterDelay: 本質(zhì)是一個(gè)定時(shí)器,且當(dāng)前在子線程執(zhí)行performSelector :withObject:afterDelay:方法,子線程沒有runloop,因此不會(huì)執(zhí)行performSelector :withObject:afterDelay:方法,需要自己手動(dòng)添加runloop才能實(shí)現(xiàn)執(zhí)行performSlector方法。

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    NSLog(@"任務(wù)1執(zhí)行");
    dispatch_async(queue, ^{
        NSLog(@"任務(wù)2執(zhí)行");
        [self performSelector:@selector(test) withObject:nil afterDelay:2.0];
//   此方法執(zhí)行
//        [self performSelector:@selector(test) withObject:nil withObject:nil];
        NSLog(@"任務(wù)3執(zhí)行");
    });
    NSLog(@"任務(wù)4執(zhí)行");

想要執(zhí)行test方法 添加如下


//[[NSRunLoop currentRunLoop] addPort:[[NSPort alloc]init] forMode:NSDefaultRunLoopMode];
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];

為什么 [self performSelector:@selector(test) withObject:nil withObject:nil]可以實(shí)現(xiàn)執(zhí)行?
因?yàn)榇朔椒]有定時(shí)器,等價(jià)于直接[self test];

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,621評(píng)論 1 32
  • runtime 和 runloop 作為一個(gè)程序員進(jìn)階是必須的,也是非常重要的, 在面試過程中是經(jīng)常會(huì)被問到的, ...
    made_China閱讀 1,269評(píng)論 0 7
  • runtime 和 runloop 作為一個(gè)程序員進(jìn)階是必須的,也是非常重要的, 在面試過程中是經(jīng)常會(huì)被問到的, ...
    SOI閱讀 22,009評(píng)論 3 63
  • 設(shè)計(jì)模式是什么? 你知道哪些設(shè)計(jì)模式,并簡(jiǎn)要敘述? 設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn),就是用比較成熟的邏輯去處理某一種類型的...
    iOS菜鳥大大閱讀 808評(píng)論 0 1
  • 1.設(shè)計(jì)模式是什么? 你知道哪些設(shè)計(jì)模式,并簡(jiǎn)要敘述? 設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn),就是用比較成熟的邏輯去處理某一種類...
    司馬DE晴空閱讀 1,458評(píng)論 0 7

友情鏈接更多精彩內(nèi)容