美文网首页ios面试题
RunLoop是什么?

RunLoop是什么?

作者: 充满活力的早晨 | 来源:发表于2018-04-09 17:28 被阅读15次

Run Loop是一让线程能随时处理事件但不退出的机制。RunLoop 实际上是一个对象,这个对象管理了其需要处理的事件和消息,并提供了一个入口函数来执行Event Loop 的逻辑。线程执行了这个函数后,就会一直处于这个函数内部 “接受消息->等待->处理” 的循环中,直到这个循环结束(比如传入 quit 的消息),函数返回。让线程在没有处理消息时休眠以避免资源占用、在有消息到来时立刻被唤醒。

OSX/iOS 系统中,提供了两个这样的对象:NSRunLoop 和 CFRunLoopRef。CFRunLoopRef 是在 CoreFoundation 框架内的,它提供了纯 C 函数的 API,所有这些 API 都是线程安全的。NSRunLoop 是基于 CFRunLoopRef 的封装,提供了面向对象的 API,但是这些 API 不是线程安全的。

线程和 RunLoop 之间是一一对应的,其关系是保存在一个全局的 Dictionary 里。线程刚创建时并没有 RunLoop,如果你不主动获取,那它一直都不会有。RunLoop 的创建是发生在第一次获取时,RunLoop 的销毁是发生在线程结束时。你只能在一个线程的内部获取其 RunLoop(主线程除外)

摘自文章

相关文章

  • runloop

    runloop是什么 runloop与线程有什么关系 runloop的原理 runloop的使用

  • iOS-RunLoop,为手机省电,节省CPU资源,程序离不开的

    RunLoop是什么?基本操作是什么? 1、RunLoop的作用 RunLoop可以: 保持程序的持续运行 处理A...

  • RunLoop的使用

    RunLoop是什么? 它有什么作用?Runloop和多线程又是什么关系?timer 与 Runloop 有什么关...

  • 详解RunLoop之源码分析

    本文首发于 个人博客 RunLoop是什么 runloop 是什么?Runloop 还是比较顾名思义的一个东西...

  • IOS runloop 学习笔记

    这次学习 的内容是 runloop 1.runloop 是什么2.runloop 的作用3.runloop 和 线...

  • RunLoop

    一、RunLoop是什么二、RunLoop的内部结构 1、RunLoop和线程的关系 2、RunLoop和Mode...

  • 详解RunLoop之源码分析

    原文地址 RunLoop是什么 runloop 是什么?Runloop 还是比较顾名思义的一个东西,说白了就是一种...

  • runloop 介绍

    iOS面试题之runloop 阅读目录 1.runloop是什么/runloop的概念? 2.NSRunLoop ...

  • runloop 面试题

    runloop 面试题 基于最近的几次面试,整理了runloop 的相关知识 1、Runloop 是什么?Run ...

  • Runloop

    什么是 Runloop?Runloop流程是什么?RunLoop接收几种输入源,系统默认定义了几种模式?RunLo...

网友评论

    本文标题:RunLoop是什么?

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