美文网首页
iOS 面试全方位剖析 -- RunLoop 篇

iOS 面试全方位剖析 -- RunLoop 篇

作者: PetitBread | 来源:发表于2018-06-11 16:09 被阅读75次

    程序都是从 main 函数开始启动的,随着 main 函数里执行体结束之后 main 函数也会结束,程序也会退出。但是为什么程序可以保持一个活跃的状态呢?
    在 main 函数的 UIApplicationMain 内部会启用一个线程循环,也就是 RunLoop。它可以不断的接收一些事件,比如屏幕点击,滑动等,处理完之后继续处于一个等待的状态。下面详细介绍一下 RunLoop

    什么是RunLoop?

    RunLoop 是通过内部维护的事件循环来对事件/消息进行管理的一个对象(状态的切换)

    • 没有消息需要处理时,休眠以避免资源占用
    • 有消息需要处理时,立刻被唤醒


    用户态: 应用程序一般都运行在用户态上
    内核态: 系统调用,需要使用到一些操作系统以及一些底层内核指令或者API

    具体包括 RunLoop 的数据结构和详细说明,请看这里 Runloop摘录,剖析的很详细,就不重复了。

    相关文章

      网友评论

          本文标题:iOS 面试全方位剖析 -- RunLoop 篇

          本文链接:https://www.haomeiwen.com/subject/gdrheftx.html