最近學習了下NSRunloop。 做一下簡單的理解:oop
一、runloop與線程的關係,每個線程建立是都會有伴有一個runloop誕生,runloop用來接收事件源,讓線程執行事件。當沒有事件處理時,runloop處於退出狀態,線程休眠。其中的事件源主要包括兩大類,timer事件和inpute事件。inpute事件包括不少類型:performxxx,nsurlconnection,port,touch事件等。 (主線程建立的runloop不會停掉,會一直跑,有多是空跑,可是一直在跑。其餘線程的runloop須要代碼手動跑起來。學習
二、若是runloop沒跑起來,將不能處理事件,線程休眠。 讓runloop跑起來的方法 :url
1 - (void)run
不推薦用這種方法,跑起來就停不下了。spa
1 -(BOOL)runMode: date:
運行runloop一次。 runloop成功處理事件後返回yes。 當事件源爲timer時,runloop不返回,一直運行處理timer事件,你能夠手動中止;線程
三、再編輯中。。。。code