RunLoop

什么是RunLoop

  • 從字面意思看,運(yùn)行循環(huán),轉(zhuǎn)圈
  • 從內(nèi)部看就是一個(gè)高級的do-while循環(huán),這個(gè)循環(huán)不斷地處理各種任務(wù)(比如Source\timer\Observer)
  • 一個(gè)線程對應(yīng)一個(gè)RunLoop,主線程的RunLoop默認(rèn)已經(jīng)啟動,子線程的RunLoop得手動啟動(調(diào)用run的方法)

RunLoop只能選擇一個(gè)Mode啟動,如果當(dāng)前Mode中沒有任何Source\Timer\Observer,那么就直接退出RunLoop

自動釋放池什么時(shí)候釋放

  • 在RunLoop睡眠之前釋放(KCFRunLoopBeforeWaiting)

開發(fā)中如何使用RunLoop?什么應(yīng)用場景

  • 開啟一個(gè)常駐線程(讓一個(gè)子線程不進(jìn)入消亡狀態(tài),等待其他線程發(fā)來消息,處理其他事件)
  • 在我們子線程中長期監(jiān)控一個(gè)行為

-- 在子線程中開啟一個(gè)定時(shí)器

  • 可以控制定時(shí)器在特定模式下執(zhí)行
  • 可以讓某些事件(行為\任務(wù))在特定模式下執(zhí)行
![ ![Snip20160322_1.png](http://upload-images.jianshu.io/upload_images/1329661-a7c405da088305b3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)](http://upload-images.jianshu.io/upload_images/1329661-3abbf757e9aa1b18.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • Run loop 剖析:Runloop 接收的輸入事件來自兩種不同的源:輸入源(intput source)和定時(shí)...
    Mitchell閱讀 12,644評論 17 111
  • 轉(zhuǎn)載:http://www.cocoachina.com/ios/20150601/11970.html RunL...
    Gatling閱讀 1,559評論 0 13
  • 前言 最近離職了,可以盡情熬夜寫點(diǎn)總結(jié),不用擔(dān)心第二天上班爽并蛋疼著,這篇的主角 RunLoop 一座大山,涵蓋的...
    zerocc2014閱讀 12,549評論 13 67
  • 原文地址:http://blog.ibireme.com/2015/05/18/runloop/ RunLoop ...
    大餅炒雞蛋閱讀 1,271評論 0 6
  • RunLoop 是 iOS 和 OS X 開發(fā)中非?;A(chǔ)的一個(gè)概念,這篇文章將從 CFRunLoop 的源碼入手,...
    iOS_Alex閱讀 974評論 0 10

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