RunLoop

1.到底什么才是RunLoop,簡(jiǎn)述
RunLoop實(shí)際上就是個(gè)do-while運(yùn)行循環(huán),其本質(zhì)保證程序運(yùn)行不退出從而監(jiān)聽APP滑動(dòng)、點(diǎn)擊、timer等事件。循環(huán)內(nèi)部沒有事情的時(shí)候是休眠狀態(tài)(sleep_and_wait())等待消息的到來,監(jiān)聽到消息之后去執(zhí)行消息(process_message(msg))。

2.線程和RunLoop的關(guān)系
線程和Runloop是一對(duì)一的關(guān)系,每個(gè)線程內(nèi)部肯定都有一個(gè)runloop,每一個(gè)runloop中可能維護(hù)著多個(gè)mode,CPU會(huì)在多個(gè)線程間切換來執(zhí)行任務(wù),呈現(xiàn)出多個(gè)線程同時(shí)執(zhí)行的效果。
執(zhí)行的任務(wù)其實(shí)就是RunLoop去各個(gè)Mode里執(zhí)行各個(gè)item;
主線程默認(rèn)開啟NSDefaultRunLoopMode,子線程需要手動(dòng)開啟runloop才行。

3.RunLoop的應(yīng)用
crash 監(jiān)聽
線程?;?br> Timer添加mode

4.RunLoop內(nèi)部實(shí)現(xiàn)方式 及工作流程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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