美文网首页
Runloop学习笔记

Runloop学习笔记

作者: 雨林QiQi | 来源:发表于2020-04-12 15:35 被阅读0次

一、Runloop是什么

    Runloop是一个运行循环,本质是一个对象。内部实现是一个do while循环,保证应用程序不被退出。

二、Runloop的作用

    

     保证程序的持续运行

    处理App中的各种事件(block、timer、source0、source1、GCD主队列、oberver)

    节约cpu资源,保证程序的性能:该做事就做事,该休息就休息

三、Runloop和线程的关系

    线程和runloop是通过key-value的形式一一对应的关系    

    注意一点:子线程runloop默认不开启

四、Runloop对象和mode

     model:是runloop里面的模式,不同的模式下的runloop处理的事件和消息有一定的差别。

    系统默认注册了5个Mode:

        (1)kCFRunLoopDefaultMode: App的默认 Mode,通常主线程是在这个 Mode 下运行的。

        (2)UITrackingRunLoopMode: 界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响。

        (3)UIInitializationRunLoopMode: 在刚启动 App 时第进入的第一个 Mode,启动完成后就不再使用。

        (4)GSEventReceiveRunLoopMode: 接受系统事件的内部 Mode,通常用不到。

        (5)kCFRunLoopCommonModes: 这是一个占位的 Mode,没有实际作用。

五、RunloopSource、Observer、timer

    timer、obsever、source加入到runloop相应mode的items中执行。

    1.timer加入的mode和现在runloop的mode相等,则执行。或者, timer加入的mode与COmmonMode相等也可以执行。

    2.observer监听runloop的状态,没有用的时候就休眠。

    3.source分source0和source1

        (1)响应事件source0:处理App内部事件以及App内部管理的事件,比如UIEvent和CFSocket

                signal待处理

                wakeup唤醒runloop处理事件

        (2)source1:线程与线程之间的通信。source1通过port进行线程之间的通讯。

    

相关文章

  • RunLoop学习笔记

    本文我主要是学习如下文章做的记录,同时还有其他优秀的文章没有粘贴出来,在这里均表示感谢。iOS RunLoop入门...

  • RunLoop学习笔记

    知识点 RunLoop 实际上就是一个对象,这个对象管理了其需要处理的事件和消息,并提供了一个入口函数来执行 Ev...

  • Runloop学习笔记

    此文仅为观后笔记!!!地址:http://v.youku.com/v_show/id_XODgxODkzODI0....

  • RunLoop学习笔记

    读这篇Blog:https://blog.ibireme.com/2015/05/18/runloop/ 学习过程...

  • RunLoop学习笔记

    深入理解RunLoop 技术点: 如何管理事件/消息 没有处理消息时休眠以避免资源占用 有消息到来时立刻被唤醒 实...

  • RunLoop学习笔记

    一般来讲,一个线程一次只能执行一个任务,执行完任务后线程就会退出。如果我们需要线程随时处理任务而不退出,通常的代码...

  • RunLoop学习笔记

    什么是runloop? 一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线...

  • RunLoop学习笔记

    一.主线程RunLoop:保证App不退出 负责监听所有的事件(触摸事件)(网络事件)(定时器事件)无事件 Run...

  • RunLoop学习笔记

    参考深入理解RunLoop深入研究 Runloop 与线程保活RunLoop分享by孙源 RunLoop的概念 R...

  • RunLoop学习笔记

    在iOS开发中,会经常用到RunLoop,面试的时候更是必问的东西,RunLoop也是iOS中非常重要的东西,趁着...

网友评论

      本文标题:Runloop学习笔记

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