RunLoop運行邏輯
RunLoop面試題:
1邮弹、什么是RunLoop?
答:從字面意思上:運行循環(huán)凑队、跑圈谤辜。
其實內(nèi)部實現(xiàn)就是一個do-While循環(huán)厉亏,在這個循環(huán)內(nèi)部不斷的執(zhí)行各種任務(wù)(Observer、Timer榔袋、Observer)
一個線程對應(yīng)一個RunLoop,主線程的RunLoop默認是已經(jīng)啟動铡俐,子線程的RunLoop需要手動啟動(調(diào)用RunLoop的run方法)
2凰兑、你在開發(fā)中怎么使用RunLoop?
答:可以控制定時器在特定模式下運行。
可以讓某些事件(行為审丘、任務(wù))在特定模式下運行吏够。
可以添加Observer監(jiān)聽RunLoop的狀態(tài),比如監(jiān)聽點擊事件的處理(在所有點擊事件之前做一些事情)
最常見的使用場景就是滩报,開啟一個常駐線程(讓一個子線程不進入消亡锅知,等待其他線程發(fā)來消息,處理其他事件脓钾。)
3售睹、自動釋放池什么時候釋放?
答:在RunLoop睡眠之前釋放(kCFRunLoopBeforeWaiting)