如圖是從蘋果官方文件擷取下來的runloop處理邏輯流程圖,
runloop處理邏輯過程為:1.通知observer即將進入loop;
2.通知observer;即將處理timer;
3.通知observer將要處理source0
4.處理source0
5.如果有source1,跳到第9步
6.通知observer,執行緒即將休眠
7.休眠,等待喚醒
8.通知observer,執行緒剛被喚醒
9.處理喚醒時收到的訊息,之後跳回2
10.通知observer即將退出loop
二、與runloop有關的面試題
1.什麼是runloop?
答:字面意思為執行迴圈,其實內部就是do-while迴圈,在這個迴圈內部不斷處理各種任務 (比如觸控事件、定時器事件、@selector()事件、observer) 。乙個執行緒對應乙個runloop,主線程的runloop預設已經啟動,子執行緒的runloop需要手動啟動(呼叫run方法)
2.自動釋放池什麼時候釋放
答:通過observer監聽runloop的狀態
RunLoop機制理解
一 淺識runloop runloop在開發中我們一直在用,但是沒有注意他。要想理解runloop,首先我們需要先了解一下程式執行機制。二 runloop與執行緒的關係 runloop是用來管理執行緒的。每乙個執行緒都有乙個runloop物件。可以通過具體的方法去獲得。但是需要注意 雖然每乙個執行緒...
業務邏輯處理
功能的實現,都是依靠業務邏輯來完成的,記得看過不能完成業務邏輯的程式設計師都不會成長的,確實是的,最近在完成業務邏輯的時候,程式的業務判斷有很多的,所以開始接觸,設計模式,看到來一些設計模式,看結合專案,確實是可以根據設計模式來改寫的,so,懂得設計模式可以快速的,寫好的 的。關於函式同步和非同步之...
SQL 邏輯處理
自己推理出來的 sql邏輯處理 判斷分情況執行不同的sql 值得收藏 select decode stat,e select ok from dual f select no from dual from select case when aa bb 0 then e else f end stat...