美文网首页
runloop详解

runloop详解

作者: 雪域红鹰 | 来源:发表于2020-04-18 12:11 被阅读0次

什么是Runloop

从字面意思来看是运行循环,在程序运行过程中循环做一些事情,如果没有Runloop程序执行完毕就会立即退出,如果有Runloop程序会一直运行,并且时时刻刻在等待用户的输入操作.RunLoop可以在需要的时候自己跑起来运行,在没有操作的时候就停下来休息.充分节省CPU资源,提高程序性能

Runloop的作用

1.保持程序的持续运行.程序启动就会开启一个主线程,主线程开启就会跑一个主线程对应的runloop.runloop保证主线程不会被销毁,也保证程序的持续的运行
2.处理app中的各种事件.触摸、定时器、Selector事件
3.节省cpu资源、提高程序的性能.程序运行起立,当什么操作都不需要的时候,runloop就告诉cup,现在没事可做,我可以去休息类.这时cpu就会将资源释放出去做其他的事情,当有事件要做的时候runloop就会立马去做事情


通过上图可以看出,RunLoop在跑圈过程中,当接收到Input sources 或者 Timer sources时就会交给对应的处理方去处理。当没有事件消息传入的时候,RunLoop就休息了

Runloop与线程的关系

1.每一条线程都有唯一一个Runloop与之对应
2.主线程的runloop是自动创建并启动的
3.子线程的runloop需要手动启动

    获得RunLoop对象后要调用run方法来启动一个运行循环
    // 启动RunLoop
    [[NSRunLoop currentRunLoop] run];
    RunLoop的其他启动方法
    // 第一个参数:指定运行模式
    // 第二个参数:指定RunLoop的过期时间,即:到了这个时间后RunLoop就失效了
    [[NSRunLoop currentRunLoop] runMode:kCFRunLoopDefaultMode       beforeDate:[NSDate distantFuture]];

4.runloop是管理线程的,当线程的runloop开启后,线程会在执行完任务后进去休眠状态,有来新任务就会被唤醒去执行任务
5.runloop在第一个获取是被创建,在线程结束时被销毁

相关文章

  • iOS Runtime

    iOS RunLoop详解---重要而详细iOS RunLoop详解-部分

  • RunLoop详解

    RunLoop详解 RunLoop运行循环(死循环) RunLoop模式 NSDefaultRunLoopMode...

  • Runloop 详解

    Runloop 详解 参考链接: 深入理解RunLoop CFRunLoop 概念 runloop :是管理和处理...

  • Runloop

    Runloop 实现原理及应用iOS - RunLoop 底层源码详解及具体运用

  • 深入理解RunLoop

    深入理解runloopiOS RunLoop详解

  • 记录一些介绍Runloop的牛文

    老司机出品——源码解析之RunLoop详解深入理解RunLoop关于RunLoop部分源码的注释CFRunLoop...

  • 底层原理探究(二)RunLoop

    转自: 老司机出品——源码解析之RunLoop详解入门使用: RunLoop入门 看我就够了孙源的Runloop视...

  • RunLoop 详解

    关于 runloop 的运行 点击链接详解附有源码

  • iOS RunLoop 详解

    转自 iOS RunLoop 详解 image.png Runloop 是和线程紧密相关的基础组件,是很多多线程有...

  • 详解RunLoop之面试题

    本文首发于个人博客 回顾详解RunLoop之源码分析中提出的问题 什么是Runloop ios程序中 main函数...

网友评论

      本文标题:runloop详解

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