執行迴路RunLoop型別機制

HaiJunLeLe發表於2020-11-14

RunLoop:執行迴路(迴環)。
NSRunLoop執行迴路的機制:官方文件API
OSX電腦作業系統/iOS移動端作業系統(作業系統:支援讀寫的系統型互動環境/某種語言的可執行檔案包(環境SDK解析))。系統型互動環境的SDK內容包裡面提供了2種物件類:NSRunLoop、CFRunLoopRef。物件類CFRunLoopRef核心基礎執行迴路引用類來源於CoreFoundation核心基礎 框架內,CFRunLoopRef類提供有純C語法函式事件API,所有這些API函式事件統統採用純C語法指令編碼都是執行緒安全(純C語法指令編碼執行緒安全性較高)。基於CFRunLoopRef核心基礎執行迴路引用類作進一步的封裝,封裝後得到NSRunLoop類公開提供新型的函式事件API(底層指令呈現出OC語法物件導向風格),所以NSRunLoop類下的函式事件API安全性較低。
備註:同等條件下封裝的次數越多封裝的層級越多,安全性逐步降低(安全性越低)。
函式/方法通過花括號"{}"組構建 實際執行例項域。


NSRunLoop型別 與執行緒的關係
NSRunLoop型別本身的花括號"{}"組執行例項域內主要呼叫dowhile()格式的迴圈指令,任意(RunLoop型別下的例項化物件)runLoop例項物件都各自管理著某個單獨執行緒(runLoop例項物件和對應的某個單獨執行緒互相繫結,彼此之間可視為一一對應的匹配關係),關係儲存在一個全域性的Dictionary裡邊,執行緒剛建立時沒有RunLoop,如果不主動獲取,是不會有的,RunLoop的建立發生在第一次獲取時,RunLoop的銷燬發生線上程結束,只能在一個執行緒的內部獲取它的RunLoop(主執行緒除外)主執行緒預設有個RunLoop.

相關文章