再聊聊 iOS 中的 RunLoop 考题 (中文版)

RunLoop 有什么用 ?


Run Loop 的作用就是,有任务,开起进程,没任务,休眠进程。


1, Observers 的实现
KVO 就是观察对象值的变化,给接收者一个事件源。有了事件源,即有任务, Run Loop 就会调度资源。

The CFRunLoopObserver API lets you observe the behavior of CFRunLoop and be notified of its activity

activity 的概念


2, block , 回调,就是下轮跑

when you want to run code “on the next loop”.


3, 主派发队列,

That Main Dispatch Queue tag is of course CFRunLoop speaking to Grand Central Dispatch.


4, Timers, 背后是CFRunLoop timers

high-lever “timers” like NSTimer or performSelector:afterDelay: are implementd using CFRunLoop timers.


参考资料:

  • Run, RunLoop, Run!

Eggs:

感觉 runloop 是 app 的事件流, 事件资源的调度,怎么处理。
应该算是站在 OS 的角度,程序员作为 VM ,给用户提供资源

那么 runtime 就是,那肯定是消息流
感觉是站在编译器的角度,看着代码是怎么执行的。
程序员作为 VM , 给代码(写代码的人,给出指令的,发消息的)提供资源

你可能感兴趣的:(再聊聊 iOS 中的 RunLoop 考题 (中文版))