Runloop的作用:
1、保持程序持續(xù)運(yùn)行:例如程序一啟動就會開一個(gè)主線程,主線程一開起來就會跑一個(gè)主線程對應(yīng)的 RunLoop , RunLoop 保證主線程不會被銷毀,也就保證了程序的持續(xù)運(yùn)行;
2、處理 App 中的各種事件(比如:觸摸事件,定時(shí)器事件,Selector事件等 );
3、節(jié)省CPU資源,優(yōu)化程序性能:程序運(yùn)行起來時(shí),當(dāng)什么操作都沒有做的時(shí)候,RunLoop就通知系統(tǒng),現(xiàn)在沒有事情做,然后進(jìn)行休息待命狀態(tài),這時(shí)系統(tǒng)就會將其資源釋放出來去做其他的事情。當(dāng)有事情做,也就是一有響應(yīng)的時(shí)候RunLoop就會立馬起來去做事情;
每個(gè)線程對應(yīng)一個(gè)runloop。主線程默認(rèn)使用mainrunloop。自己創(chuàng)建的線程,默認(rèn)不創(chuàng)建runloop,需要自己調(diào)用[[nsrunloop currentrunloop] start]啟用