RunLoop處理邏輯

2021-07-22 09:07:00 字數 644 閱讀 9655

如圖是從蘋果官方文件擷取下來的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...