美文网首页
7-1 什么是NSRunLoop?

7-1 什么是NSRunLoop?

作者: Rumbles | 来源:发表于2019-04-13 21:32 被阅读0次

1.什么是RunLoop

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

1.没有消息处理的时,休眠以避免资源占用
用户态 --> 内核态
2.有消息处理时,立刻被唤醒
内核态 --> 用户态 

什么是事件循环
不断的处理消息 

int main(int argc, char * argv[]) {
 内部开启Runloop 然后接受 处理 等待消息 使得main函数不结束
}
在main函数中会启动UIApplication的RunLoop 来处理用户交互的一些事件 当没有事情做时,会从用户态到内核态转换,避免资源占用,然后当前线程处于休眠的状态

CFRunLoopRef、CFRunLoopModeRef、CFRunLoopSourceRef、CFRunLoopTimerRef、CFRunLoopObserverRef

按照官方文档CFRunLoopSourceRef为3类,但数据结构只有两类(source0、source1)
CFRunLoopTimerRef是基于时间的触发器,基本上说的就是NSTimer。在预设的时间点唤醒runloop执行回调。因为它是基于RunLoop的,因此它不是实时的(就是NSTimer 是不准确的。 因为RunLoop只负责分发源的消息。如果线程当前正在处理繁重的任务,就有可能导致Timer本次延时,或者少执行一次)。

那么如何写一个准确的Timer
为什么不准 当我们使用NSTimer里面的方法 任务过重时 会出现问题
dispatch_source_set_timer

深入理解RunLoop

相关文章

  • 7-1 什么是NSRunLoop?

    1.什么是RunLoop RunLoop是通过内部维护的事件循环来对事件/消息进行管理的一个对象 CFRunLoo...

  • 关于NSRunLoop和NSTimer的深入理解

    一、什么是NSRunLoop NSRunLoop是消息机制的处理模式。 NSRunLoop的作用在于有事情做的时候...

  • NSRunLoop

    一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使...

  • NSRunLoop和NSTimer的理解

    一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使...

  • NSRunLoop和NSTimer

    一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使...

  • 关于NSRunLoop和NSTimer的深入理解

    文章转自刚刚在线 一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在...

  • 关于NSRunLoop和NSTimer的深入理解

    一、什么是NSRunLoop NSRunLoop是消息机制的处理模式 NSRunLoop的作用在于有事情做的时候使...

  • 什么是NSRunLoop

    什么是Runloop? RunLoop是一个事件处理循环,是一种让线程能随时处理事件但不退出的机制。它的目的是为了...

  • NSRunLoop总结 和 安卓Looper 不同

    目录 1 什么是NSRunLoop ? 21.1 简化一下: 21.2 形象一下: 22 NSRunLoop与 ...

  • NSRunLoop作用

    NSRunLoop是IOS消息机制的处理模式 NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和...

网友评论

      本文标题:7-1 什么是NSRunLoop?

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