美文网首页
Runloop(方便自己记忆)

Runloop(方便自己记忆)

作者: 焱止殇 | 来源:发表于2017-12-03 13:16 被阅读11次

Runloop的主要作用

1.整个app是由一个大的runloop包起来,使程序一直运行并接受用户输入
2.平时休息,当有event来临时,决定程序在何时处理哪些event
3.使用(message queue)调用解耦,比如:用户滑动scrollview,会产生很多events,runloop把这些events扔到message queue,在合适的时候处理,试想一下,如果是立即处理,那么用户一滑动屏幕,event太多,可能屏幕就卡住了
4.节省cpu时间,cpu处理event是时间片轮转调度的方式,而runloop就是把一段时间的事件全部收集起来执行,提高了cpu处理的效率。
举个栗子:我们同时打开多个app,看到的现象是同时运行在运行;但是在微观上,程序是被操作系统片段执行的,每个片段就是一个时间片(由于只有一个CPU,一次只能处理程序要求的一部分,除开新的多核CPU以及超线程CPU)

案例:

1. 2.png 2. 3.png

3.xcode8的testcase已经支持了


4.png

4.当你需要固定间隔比如0.1秒统计等操作时,因为主线程要做UI等操作可能导致导致回调事件不准确(Timer 有个属性叫做 Tolerance (宽容度),标示了当时间点到后,容许有多少最大误差)。
这个时候你可以把timer加到commonRunloop里面;
同样也可以加到子线程避免这种情况:

   dispatch_async(dispatch_get_global_queue(0, 0), ^{
        self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(aaa) userInfo:nil repeats:YES];
        [[NSRunLoop currentRunLoop]addTimer:self.timer forMode:NSDefaultRunLoopMode];
        [[NSRunLoop currentRunLoop] run];
    });

注意事项:

1.getCurrentRunloop获取当前的runloop,没有则会创建一个
2.AFNetworking中的runloop添加machport,只是为了让runloop活着,因为这个runloop会一直等待port发消息

3. 1.jpg
4.方便自己看
Runloop.png

资料:

深入理解RunLoop
孙源的runloop视频
iOS - RunLoop 深入理解
时间片轮转调度

相关文章

  • Runloop(方便自己记忆)

    Runloop的主要作用 1.整个app是由一个大的runloop包起来,使程序一直运行并接受用户输入2.平时休息...

  • RunLoop详解

    此文转载自深入理解RunLoop,为了方便自己阅读,发在简书上RunLoop 是 iOS 和 OS X 开发中非常...

  • iOS RunLoop

    写在前面 文章是对网络上的一些讲解做了自己的整理,方便自己理解。 概念 什么是RunLoop? RunLoop是什...

  • 杂-方便记忆

    MAC JDK自由切换JDK 终端 open -t ~/.bash_profile 输入: export JAVA...

  • Runloop

    注:本篇博客只在 ibireme 的 深入理解RunLoop 基础上做了点方便自己复习该知识点的修改,能力有限,如...

  • iOS 常见知识点(二):RunLoop

    注:本篇博客只在 ibireme 的 深入理解RunLoop 基础上做了点方便自己复习该知识点的修改,能力有限,如...

  • runloop相关

    整理一下自己学到的知识,方便以后查看 runloop 和线程的关系: 主线程的run loop默认是启动的。 iO...

  • 方便别人,方便自己

    闹钟响起,朦朦胧胧的睁开眼,看了一下7:30,赶路上班时间到了,洗脸刷牙,简单打扮一下就出门了,搁以前,都...

  • 方便别人,方便自己

    华南区:杨丽 报道 2019年8月22日上午,云南昭通镇雄永嘉课堂的志愿者身穿红马甲,扛着国旗和东望的旗...

  • RunLoop

    RunLoop简单概述 RunLoop相关类 RunLoop逻辑处理 RunLoop实践 RunLoop简单概述 ...

网友评论

      本文标题:Runloop(方便自己记忆)

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