初識(shí)RunLoop

  • 初識(shí)RunLoop

  • 1.RunLoop的作用

    • A 保持程序的持續(xù)運(yùn)行(ios程序?yàn)槭裁茨芤恢被钪粫?huì)死)

    • B 處理App中的各種事件(觸摸、定時(shí)事件拴事、selector事件....)

    • C 節(jié)省CPU資源蒋伦,提高程序性能弓摘,有事件就處理事件,沒有就休息

  • 2.RunLoop的重要說明痕届、重要說明韧献、重要說明

    • 1. 如果沒有RunLoop,那么程序已啟動(dòng)就會(huì)退出研叫,什么事情都做不了

    • 2. 如果沒有RunLoop锤窑,那么相當(dāng)于在內(nèi)部有一個(gè)死循環(huán),能夠保持程序持續(xù)運(yùn)行

    • 3. main函數(shù)中的RunLoop
      • 在UIAPPlication函數(shù)內(nèi)部就啟動(dòng)了一個(gè)RunLoop嚷炉,該函數(shù)返回一個(gè)int類型的值
      • 這個(gè)默認(rèn)啟動(dòng)的RunLoop是跟主線程相關(guān)
  • 3.RunLoop的API

    • 1. 在iOS開發(fā)中有兩套api來訪問Runloop
      • a.foundation框架【NSRunloop】
      • b.core foundation框架【CFRunloopRef】
- #####2. NSRunLoop和CFRunLoopRef都代表著RunLoop對(duì)象,它們是等價(jià)的渊啰,可以互相轉(zhuǎn)換
- #####3. NSRunLoop是基于CFRunLoopRef的一層OC包裝,所以要了解RunLoop內(nèi)部結(jié)構(gòu)申屹,需要多研究CFRunLoopRef層面的API(Core Foundation層面)
  • 4.RunLoop與線程

    • 1.Runloop和線程的關(guān)系:一個(gè)Runloop對(duì)應(yīng)著一條唯一的線程

      • 問題:如何讓子線程不死

      • 回答:給這條子線程開啟一個(gè)Runloop

    • 2.Runloop的創(chuàng)建:主線程Runloop已經(jīng)創(chuàng)建好了绘证,子線程的runloop需要手動(dòng)創(chuàng)建

    • 3.Runloop的生命周期:在第一次獲取時(shí)創(chuàng)建,在線程結(jié)束時(shí)銷毀

  • 5.獲取RunLoop

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //獲得主線程對(duì)應(yīng)的runloop
    NSRunLoop *mainRunLoop = [NSRunLoop mainRunLoop];
    //獲取當(dāng)前線程對(duì)應(yīng)的runloop
    NSRunLoop *currentRunLoop = [NSRunLoop currentRunLoop];
    
    NSLog(@"%p---%p",mainRunLoop,currentRunLoop);
    /**
     Runloop和線程的關(guān)系
     一一對(duì)應(yīng)的關(guān)系哗讥,主線程runloop已經(jīng)創(chuàng)建嚷那,但是子線程的需要手動(dòng)創(chuàng)建
     */
   NSThread *thread =  [[NSThread alloc]initWithTarget:self selector:@selector(runLoop) object:nil];
    [thread start];
}
-(void)runLoop
{   //創(chuàng)建子線程對(duì)應(yīng)的runloop,currentRunLoop是懶加載的
    NSLog(@"%@",[NSRunLoop currentRunLoop]);
    NSLog(@"run---%@",[NSThread currentThread]);
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末杆煞,一起剝皮案震驚了整個(gè)濱河市魏宽,隨后出現(xiàn)的幾起案子腐泻,更是在濱河造成了極大的恐慌,老刑警劉巖湖员,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贫悄,死亡現(xiàn)場(chǎng)離奇詭異瑞驱,居然都是意外死亡娘摔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門唤反,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凳寺,“玉大人,你說我怎么就攤上這事彤侍〕τВ” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵盏阶,是天一觀的道長(zhǎng)晒奕。 經(jīng)常有香客問我,道長(zhǎng)名斟,這世上最難降的妖魔是什么脑慧? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮砰盐,結(jié)果婚禮上闷袒,老公的妹妹穿的比我還像新娘。我一直安慰自己岩梳,他們只是感情好囊骤,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著冀值,像睡著了一般也物。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上列疗,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天滑蚯,我揣著相機(jī)與錄音,去河邊找鬼作彤。 笑死膘魄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竭讳。 我是一名探鬼主播创葡,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼绢慢!你這毒婦竟也來了灿渴?” 一聲冷哼從身側(cè)響起洛波,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎骚露,沒想到半個(gè)月后蹬挤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棘幸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年焰扳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片误续。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吨悍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹋嵌,到底是詐尸還是另有隱情育瓜,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布栽烂,位于F島的核電站躏仇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腺办。R本人自食惡果不足惜焰手,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望菇晃。 院中可真熱鬧册倒,春花似錦、人聲如沸磺送。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)估灿。三九已至崇呵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間馅袁,已是汗流浹背域慷。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汗销,地道東北人犹褒。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弛针,于是被迫代替她去往敵國(guó)和親叠骑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容