iOS之深入解析Runloop的底层原理
生活随笔
收集整理的這篇文章主要介紹了
iOS之深入解析Runloop的底层原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、Runloop 簡介
① 什么是 Runloop ?
- RunLoop 是事件接收和分發機制的一個實現,是線程相關的基礎框架的一部分,一個 RunLoop 就是一個事件處理的循環,用來不停的調度工作以及處理輸入事件。
- Runloop 不僅僅是一個運行循環(do-while 循環),也是提供了一個入口函數的對象,消息機制處理模式,運行循環從兩種不同類型的源接收事件。
- 輸入源提供異步事件,通常是來自另一個線程或來自不同應用程序的消息。定時器源提供同步事件,發生在預定時間或重復間隔。
- 兩種類型的源都使用特定于應用程序的處理程序例程來處理事件。除了處理輸入源之外,Runloop 還會生成有關 Runloop 行為的通知。
- 已注冊的運行循環觀察器可以接收這些通知并使用它們在線程上執行其他處理。
② Runloop 作用
- 當啟動一個 iOS APP 時主線程啟動與其對應的 RunLoop 也已經開啟,如果不殺掉 APP 則會一直運行,就是因為 RunLoop 循環一直為開啟狀態保證主線程不會被摧毀,這也是 RunLoop 的作用之一:保證線程不退出,保持程序的持續運行。
- RunLoop 在循環過程中監聽事件,當前線程有任務時,喚醒當當前線程去執行任務,任務執行完成以后,使當前線程進入休眠狀態。當然這里的休眠不同于我們寫的死循環 while(1),它在休眠時幾乎不會占用系統資源,這是由操作系統內核去負責實現的。
- 處理 App 中的各種事件(觸摸、定時器、perfor
總結
以上是生活随笔為你收集整理的iOS之深入解析Runloop的底层原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之深入解析自动释放池autorel
- 下一篇: iOS之深入解析内存管理Tagged P