RunLoop(Run + Loop)循環(huán)運行

RunLoop的兩個重要的作用:

1缭受、保證iOS程序運行后不退出(因為RunLoop是一個“死循環(huán)”娃循,才能保證程序運行后不會退出适揉。否則執(zhí)行完main函數(shù)就直接退出黔牵。)

2聪轿、監(jiān)聽事件和傳遞事件(監(jiān)聽系統(tǒng)產(chǎn)生的(點擊事件、拖拽事件猾浦、觸摸事件陆错。。金赦。)所有的事件)音瓷。

RunLoop在何時創(chuàng)建和銷毀:

當(dāng)程序啟動的時候,在執(zhí)行main函數(shù)中的UIApplicationMain函數(shù)內(nèi)部會將RunLoop對象創(chuàng)建出來夹抗。通過查看UIApplicationMain函數(shù)聲明绳慎,該函數(shù)會返回一個int類型的值,但通過剛剛的結(jié)論漠烧,這個UIApplicationMain函數(shù)永遠(yuǎn)也不會有返回值杏愤,因為如果這個UIApplicationMain函數(shù)有返回值放前,那么main函數(shù)就會接收到返回值就直接退出了慢洋,這樣就不能保持應(yīng)用程序一直處于運行狀態(tài)了咳秉。所以UIApplicationMain內(nèi)部必然會創(chuàng)建RunLoop對象來實現(xiàn)永不退出的功能黍图。結(jié)論:在程序啟動的時候豪墅,在執(zhí)行UIApplicationMain函數(shù)內(nèi)部卑硫,系統(tǒng)會負(fù)責(zé)創(chuàng)建RunLoop對象觉增。

RunLoop是死循環(huán)會很耗性能嗎奠货?

不會堕担。如果沒有事件需要處理的話已慢,RunLoop就會讓線程進(jìn)入休眠狀態(tài);在睡眠的時候消耗的性能就非常少了照宝。一旦有事件產(chǎn)生蛇受,RunLoop會立刻喚醒當(dāng)前線程來處理事件。事件處理完畢之后厕鹃,RunLoop會循環(huán)檢測事件的到來兢仰。如果在一定的時間內(nèi)沒有事件產(chǎn)生了乍丈,RunLoop又會讓線程進(jìn)入休眠狀態(tài)來減少開銷。

每個線程都會對應(yīng)一個RunLoop(主線程和子線程):

默認(rèn)主線程的RunLoop是自動開啟的把将,子線程的RunLoop是默認(rèn)不開啟的轻专。若在子線程中有事件發(fā)生的時候就需要開啟RunLoop;開啟方法為:NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末察蹲,一起剝皮案震驚了整個濱河市请垛,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洽议,老刑警劉巖宗收,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異亚兄,居然都是意外死亡混稽,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門审胚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來匈勋,“玉大人,你說我怎么就攤上這事膳叨∏⒔啵” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵菲嘴,是天一觀的道長饿自。 經(jīng)常有香客問我,道長龄坪,這世上最難降的妖魔是什么璃俗? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮悉默,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苟穆。我一直安慰自己抄课,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布雳旅。 她就那樣靜靜地躺著跟磨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪攒盈。 梳的紋絲不亂的頭發(fā)上抵拘,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機與錄音型豁,去河邊找鬼僵蛛。 笑死尚蝌,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的充尉。 我是一名探鬼主播飘言,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼驼侠!你這毒婦竟也來了姿鸿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤倒源,失蹤者是張志新(化名)和其女友劉穎苛预,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笋熬,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡热某,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了突诬。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苫拍。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖旺隙,靈堂內(nèi)的尸體忽然破棺而出绒极,到底是詐尸還是另有隱情,我是刑警寧澤蔬捷,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布垄提,位于F島的核電站,受9級特大地震影響周拐,放射性物質(zhì)發(fā)生泄漏铡俐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一妥粟、第九天 我趴在偏房一處隱蔽的房頂上張望审丘。 院中可真熱鬧,春花似錦勾给、人聲如沸滩报。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脓钾。三九已至,卻和暖如春桩警,著一層夾襖步出監(jiān)牢的瞬間可训,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留握截,地道東北人飞崖。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像川蒙,于是被迫代替她去往敵國和親蚜厉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

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