runLoop

Runloop

保持程序的持續(xù)運行

處理APP中的各種事件(比如觸摸事件,定時器事件谎脯,selector事件)

節(jié)省CPU資源葱跋,提高程序性能:該做事做事,該休息時休息 (比如沒有進行操作時runLoop就會睡覺源梭,當進行操作時runLoop就會運行娱俺,很節(jié)省CPU資源)

UIApplicationMain函數(shù)內(nèi)部就啟動了一個RunLoop

所以UIApplicationMain函數(shù)一直沒有返回,保持了程序的持續(xù)運行

這個默認啟動的RunLoop是跟主線程相關(guān)聯(lián)的废麻,主線程的是默認開啟的荠卷,子線程是沒有開啟的

RunLoop對象在ios中有2套API來訪問和使用

Foundation框架 OC的 NSRunLoop :效率低,封裝的比較少烛愧,提供的API較少

CoreFoundation框架基于C的CFRunLoopRef

每條線程都有唯一的一個與之對應(yīng)的RunLoop對象

主線程runLoop已自動創(chuàng)建好了油宜,子線程的需要主動創(chuàng)建

runLoop在第一次獲取時創(chuàng)建,在線程結(jié)束時自動銷毀

獲得RunLoop對象

Foundation

【NSRunLoop? currentRunLoop】怜姿;//獲得當前線程runLoop

【NSRunLoop mainRunLoop】慎冤;//獲得主線程

CoreFoundation

CFRunLoopGetCurrent();//獲得當前線程runLoop

CFRunLoopGetMain();//獲得主線程

CFRunLoopModeRef;

// 代表runLoop的運行模式, 可以有多個mode,每個mode又包含若干個source/timer/observer ,如果為空不能跑起來? 重要組成部分沧卢,每次runLoop啟東時粪薛,只能指定一個mode,這個mode被稱作currentModel

如果需要切換mode,只能退出Loop搏恤,再重新指定一個mode進入违寿,這樣做只是為了分隔開不同組的source/timer/observer ,讓其互不影響

**************

kCFRunLoopDefaultMode 默認mode ,通常主線程是在這個mode下運行

(當有定時任務(wù)時在上面的mode進行熟空,當有滑動時切換到下面的mode進行)

UITrackingRunLoopMode 界面跟蹤mode藤巢,用于ScrollView追蹤觸摸滑動,保證界面滑動時不受其他Mode運行

UIInitializationRunLoopMode 在剛啟動時App時進入的第一個mode息罗,啟動完成后就不再使用

GSEventReceiveRunLoopMode 接收系統(tǒng)時間的內(nèi)部mode掂咒,通常用不到

KCFRunLoopCommonModes? 這是一個占位mode,不是一個真正的mode? (當設(shè)置成他迈喉,會根據(jù)情況判斷)

CFRunLoopSourceRef;//處理的事情绍刮,某個按鈕要執(zhí)行的函數(shù) ,用source泛指

Source0:非基于Port的? ? 不是系統(tǒng)提供的自己寫的

Source1:基于Port的? 系統(tǒng)提供的

CFRunLoopTimerRef挨摸;//定時器? 適時地去做事

CFRunLoopObserverRef;//監(jiān)聽? 啥時候讓runLoop執(zhí)行

是觀察者孩革,能夠監(jiān)聽runLoop的狀態(tài)改變,可以監(jiān)聽的時間點有以下幾個

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末得运,一起剝皮案震驚了整個濱河市膝蜈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熔掺,老刑警劉巖饱搏,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異置逻,居然都是意外死亡推沸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門券坞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鬓催,“玉大人,你說我怎么就攤上這事报慕∩罡。” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵眠冈,是天一觀的道長飞苇。 經(jīng)常有香客問我,道長蜗顽,這世上最難降的妖魔是什么布卡? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮雇盖,結(jié)果婚禮上忿等,老公的妹妹穿的比我還像新娘。我一直安慰自己崔挖,他們只是感情好贸街,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布庵寞。 她就那樣靜靜地躺著,像睡著了一般薛匪。 火紅的嫁衣襯著肌膚如雪捐川。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天逸尖,我揣著相機與錄音古沥,去河邊找鬼。 笑死娇跟,一個胖子當著我的面吹牛岩齿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苞俘,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼盹沈,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苗胀?” 一聲冷哼從身側(cè)響起襟诸,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎基协,沒想到半個月后歌亲,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡澜驮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年陷揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杂穷。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡悍缠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耐量,到底是詐尸還是另有隱情飞蚓,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布廊蜒,位于F島的核電站趴拧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏山叮。R本人自食惡果不足惜著榴,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屁倔。 院中可真熱鬧脑又,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至口叙,卻和暖如春炼绘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妄田。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驮捍,地道東北人疟呐。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像东且,于是被迫代替她去往敵國和親启具。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

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