美文网首页
RunLoop(Run + Loop)循环运行

RunLoop(Run + Loop)循环运行

作者: A维生素A | 来源:发表于2018-05-30 16:30 被阅读0次

RunLoop的两个重要的作用:

1、保证iOS程序运行后不退出(因为RunLoop是一个“死循环”,才能保证程序运行后不会退出。否则执行完main函数就直接退出。)

2、监听事件和传递事件(监听系统产生的(点击事件、拖拽事件、触摸事件。。。)所有的事件)。

RunLoop在何时创建和销毁:

当程序启动的时候,在执行main函数中的UIApplicationMain函数内部会将RunLoop对象创建出来。通过查看UIApplicationMain函数声明,该函数会返回一个int类型的值,但通过刚刚的结论,这个UIApplicationMain函数永远也不会有返回值,因为如果这个UIApplicationMain函数有返回值,那么main函数就会接收到返回值就直接退出了,这样就不能保持应用程序一直处于运行状态了。所以UIApplicationMain内部必然会创建RunLoop对象来实现永不退出的功能。结论:在程序启动的时候,在执行UIApplicationMain函数内部,系统会负责创建RunLoop对象。

RunLoop是死循环会很耗性能吗?

不会。如果没有事件需要处理的话,RunLoop就会让线程进入休眠状态;在睡眠的时候消耗的性能就非常少了。一旦有事件产生,RunLoop会立刻唤醒当前线程来处理事件。事件处理完毕之后,RunLoop会循环检测事件的到来。如果在一定的时间内没有事件产生了,RunLoop又会让线程进入休眠状态来减少开销。

每个线程都会对应一个RunLoop(主线程和子线程):

默认主线程的RunLoop是自动开启的,子线程的RunLoop是默认不开启的。若在子线程中有事件发生的时候就需要开启RunLoop;开启方法为:NSRunLoop *runLoop = [NSRunLoop currentRunLoop];

相关文章

  • 简单谈谈RunLoop

    1、RunLoop定义 从字面上看,run是运行,执行的意思,loop是循环的意思,其实RunLoop就是运行循环...

  • runLoop 事件

    1.runLoop 的意思 Run 表示运行,Loop 表示循环。结合在一起就是运行的循环的意思 RunLoop ...

  • iOS开发笔记-RunLoop

    1. RunLoop简介 1.1 什么是RunLoop? 可以理解为字面意思:Run表示运行,Loop表示循环。结...

  • RunLoop(Run + Loop)循环运行

    RunLoop的两个重要的作用: 1、保证iOS程序运行后不退出(因为RunLoop是一个“死循环”,才能保证程序...

  • Runloop

    1、什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环。结合在一起就是运行的循环的...

  • iOS开发runloop以及使用场景

    1、什么是RunLoop?可以理解为字面意思:Run表示运行,Loop表示循环,结合起来就是循环运行。1.1、Ru...

  • iOS RunLoop

    什么是RunLoop? 可以理解为字面意思:Run表示运行,Loop表示循环。结合在一起就是运行的循环的意思。哈哈...

  • 我理解的runloop

    什么是RunLoop Run 运行 Loop 循环 跑圈 基本作用保持程序的持续运行处理App中的各种事件(触摸事...

  • iOS -- RunLoop源码分析

    一、什么是RunLoop? Run Loop翻译过来差不多就是运行着的循环。它的作用本质也可以用Run代表。那Ru...

  • Runloop源码分析(1)——初探

    首先了解一下Runloop,Run是运行,Loop是循环。 默认情况下主线程的RunLoop原理:我们在启动一个i...

网友评论

      本文标题:RunLoop(Run + Loop)循环运行

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