Runloop的作用:
1、保持程序持續(xù)運(yùn)行:例如程序一啟動(dòng)就會(huì)開一個(gè)主線程,主線程一開起來就會(huì)跑一個(gè)主線程對(duì)應(yīng)的 RunLoop , RunLoop 保證主線程不會(huì)被銷毀拖刃,也就保證了程序的持續(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)就會(huì)將其資源釋放出來去做其他的事情饿肺。當(dāng)有事情做,也就是一有響應(yīng)的時(shí)候RunLoop就會(huì)立馬起來去做事情盾似;
每個(gè)線程對(duì)應(yīng)一個(gè)runloop敬辣。主線程默認(rèn)使用mainrunloop。自己創(chuàng)建的線程零院,默認(rèn)不創(chuàng)建runloop溉跃,需要自己調(diào)用[[nsrunloop currentrunloop] start]啟用