RunLoop  是事件接收和分发机制的一个实现。

事件的传递过程是    一旦有事件发生,第一个接收这个事件的对象是window,判断window是否能处理,能处理遍历他的子控件看能不能处理,子控件能处理又遍历子控件的子控件,知道它的子控件不能处理时,事件就由它处理。      runloop提供异步执行代码机制,不能并行处理任务。

在主队列中,Main RunLoop直接配合任务的执行,负责处理UI事件、定时器以及其他内核相关的事件。

runloop特点:保证程序执行的县城不会被系统终止

何时调用:当需要和该线程进行交互的时候是才会使用runLoop,每个线程都有其对应的RunLoop,默认非主线程的runLoop是没有运行的,需要一个事件源,然后去run它。

当线程中需要长时间检测一个事件时,才启用线程的runLOOP,runloop使用之后如果检测到该事件,就执行该事件,如果没有,该线程会一直不退出。runLoop体现出,有事件就干活,没事就小憩,但是不离开(不退出线程)

runloop是线程进入、被线程拿来处理相应事件以及调用事件处理函数的地方。需要和while 或者for循环来驱动runloop

在循环中我们创建一个runloop对象来启用runloop,这个对象就是该线程中的runloop

dispatch_queue_t   serialQueue = dispatch_queue_create("serialQueue",DISPATCH_QUEUE_SERIAL);创建线程队列

dispatch_async(serialQueue,^{

NSRunloop  runloop = [NSRunloop currentRunloop];获得当前线程中的runloop

需要添加列子

});block就是线程

runloop有两种源事件     input sources  和timer  sources

input sources 传递异步事件

timer sources 处理定时器事件  传递同步事件

runloop产生关于本身行为的notification。注册成为Runloop的observer,可以接收notification。

runloop工作模式有 事件源处理事件,没有进入休眠&#x

runTime runLoop相关推荐

  1. ios 模式讲解runtime runloop

    转自掘金链接:https://juejin.im/post/593f77085c497d006ba389f0 相信对于从事开发人员来说 runtime 这个名称都不陌生,就像我起初只知道「 runti ...

  2. iOS开发·runtime原理与实践: 基本知识篇

    点击上方"iOS开发",选择"置顶公众号" 关键时刻,第一时间送达! 摘要:这篇文章首先介绍runtime原理,包括类,超类,元类,super_class,is ...

  3. iOS模式详解runtime面试工作

    简书:http://www.jianshu.com/p/19f280afcb24 对于从事 iOS 开发人员来说,所有的人都会答出「runtime 是运行时」,什么情况下用runtime?,大部分人能 ...

  4. 转载 一个渣硕iOS春招总结 | 掘金技术征文

    https://www.qingtingip.com/h_219584.html 地处北方一隅,今年很多公司春招没来现场,所以基本都是提前批的线上面试,整个三月都过的比较累,4月份的校招应该不参加了, ...

  5. 2016第一季度目标

    2019独角兽企业重金招聘Python工程师标准>>> 2015下半年目标: 1 3个月熟悉并掌握ios开发的基本技能,能独立完成简单的模块,会使用常用ui控件. 2 坚持写博客,每 ...

  6. 【iOS开发】从小白到低水平开发者进厂实习自救指南

    本篇文章的观点来自笔者对一些文章的总结和归纳,以及结合自身的理解. 1.准备的工具 工欲善其事,必先利其器.再结合了大牛们的经验文章后,主要有以下两个工具值得推荐: 1.OneNote(Windows ...

  7. 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!

    前言 这篇文章我来总结一下iOS程序员的简历应该怎么写,有哪些注意事项,如何拿下大厂offer的必备技术点: 花点时间,耐心看完,一定会对你有所帮助! 目录 一:iOS开发者定位分析 二:iOS开发基 ...

  8. runLoop和runtime的分析

    一.RunLoop: Runloop是事件接收和分发机制的一个实现. Runloop提供了一种异步执行代码的机制,不能并行执行任务. 在主队列中,Main RunLoop直接配合任务的执行,负责处理U ...

  9. iOS runtime和runloop

    runtime 和 runloop 作为一个程序员进阶是必须的,也是非常重要的, 在面试过程中是经常会被问到的, 所以大家有必要进行研究,有能力的童鞋可以和下面作者一样, 亲历实践一下. 在简书里发现 ...

最新文章

  1. Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
  2. JAVA怎么创建对象组_java – 如何根据特定字段创建一组有序的对象?
  3. (转) Android生成签名文件并用其对apk文件进行签名
  4. java动态网站框架_大型网站动态应用系统架构
  5. C#中5步完成word文档打印的方法
  6. 对于基于模板的前端框架的补充
  7. Nodejs express 获取url参数,post参数的三种方式
  8. 【PostgreSQL-9.6.3】psql常用命令
  9. CSS背景图像的简单响应
  10. Java实现大数操作
  11. 企业微信直播有哪些优势呢?
  12. CodeSmith 7.01破解
  13. 如何使用.REG文件来操作注册表
  14. 面向对象的编程(上)_方法的重载(overload)练习
  15. h5盲盒商城源码 修复版 附带详细教程
  16. Sketch插件开发入门
  17. 使用js乘法 精度错乱 使用Decimal插件处理格式问题
  18. 设计一个不浪费水的热水器
  19. 编写ATL工程实现ActiveX控件调用cryptoAPI接口(三)------------AES对称加密与解密
  20. 数据结构——用户登陆系统

热门文章

  1. What is a News Aggregator?
  2. 《扬帆优配》交易拥挤度达历史极值 当前A股TMT板块性价比几何?
  3. Swift @escaping 属性
  4. Keil5 “Loading PDSC Debug Description Failed for STMicroelectronics STM32Hxxxxxxx”解决办法
  5. 【100%通过率】华为OD机试真题 JS 实现【数字加减游戏】【2023 Q1 | 100分】
  6. css左边固定,右边自适应
  7. mysql优化 个人笔记 非礼勿扰 -m04
  8. Uipath实现简单的滑块拖动验证
  9. python终结一个循环额_103.md · 小小懒羊羊/StarterLearningPython - Gitee.com
  10. c++制作小游戏2048