RunLoop

什么是RunLoop

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

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

自動釋放池什么時候釋放

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

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

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

-- 在子線程中開啟一個定時器

  • 可以控制定時器在特定模式下執(zhí)行
  • 可以讓某些事件(行為\任務)在特定模式下執(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)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容