runTime runLoop
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相关推荐
- ios 模式讲解runtime runloop
转自掘金链接:https://juejin.im/post/593f77085c497d006ba389f0 相信对于从事开发人员来说 runtime 这个名称都不陌生,就像我起初只知道「 runti ...
- iOS开发·runtime原理与实践: 基本知识篇
点击上方"iOS开发",选择"置顶公众号" 关键时刻,第一时间送达! 摘要:这篇文章首先介绍runtime原理,包括类,超类,元类,super_class,is ...
- iOS模式详解runtime面试工作
简书:http://www.jianshu.com/p/19f280afcb24 对于从事 iOS 开发人员来说,所有的人都会答出「runtime 是运行时」,什么情况下用runtime?,大部分人能 ...
- 转载 一个渣硕iOS春招总结 | 掘金技术征文
https://www.qingtingip.com/h_219584.html 地处北方一隅,今年很多公司春招没来现场,所以基本都是提前批的线上面试,整个三月都过的比较累,4月份的校招应该不参加了, ...
- 2016第一季度目标
2019独角兽企业重金招聘Python工程师标准>>> 2015下半年目标: 1 3个月熟悉并掌握ios开发的基本技能,能独立完成简单的模块,会使用常用ui控件. 2 坚持写博客,每 ...
- 【iOS开发】从小白到低水平开发者进厂实习自救指南
本篇文章的观点来自笔者对一些文章的总结和归纳,以及结合自身的理解. 1.准备的工具 工欲善其事,必先利其器.再结合了大牛们的经验文章后,主要有以下两个工具值得推荐: 1.OneNote(Windows ...
- 7年iOS开发经验,教你写一份脱颖而出的简历,进入大厂机会翻3倍!
前言 这篇文章我来总结一下iOS程序员的简历应该怎么写,有哪些注意事项,如何拿下大厂offer的必备技术点: 花点时间,耐心看完,一定会对你有所帮助! 目录 一:iOS开发者定位分析 二:iOS开发基 ...
- runLoop和runtime的分析
一.RunLoop: Runloop是事件接收和分发机制的一个实现. Runloop提供了一种异步执行代码的机制,不能并行执行任务. 在主队列中,Main RunLoop直接配合任务的执行,负责处理U ...
- iOS runtime和runloop
runtime 和 runloop 作为一个程序员进阶是必须的,也是非常重要的, 在面试过程中是经常会被问到的, 所以大家有必要进行研究,有能力的童鞋可以和下面作者一样, 亲历实践一下. 在简书里发现 ...
最新文章
- Car-eye-http-flv-module 实现nginx-rtmp-mudule HTTP方式的FLV直播功能
- JAVA怎么创建对象组_java – 如何根据特定字段创建一组有序的对象?
- (转) Android生成签名文件并用其对apk文件进行签名
- java动态网站框架_大型网站动态应用系统架构
- C#中5步完成word文档打印的方法
- 对于基于模板的前端框架的补充
- Nodejs express 获取url参数,post参数的三种方式
- 【PostgreSQL-9.6.3】psql常用命令
- CSS背景图像的简单响应
- Java实现大数操作
- 企业微信直播有哪些优势呢?
- CodeSmith 7.01破解
- 如何使用.REG文件来操作注册表
- 面向对象的编程(上)_方法的重载(overload)练习
- h5盲盒商城源码 修复版 附带详细教程
- Sketch插件开发入门
- 使用js乘法 精度错乱 使用Decimal插件处理格式问题
- 设计一个不浪费水的热水器
- 编写ATL工程实现ActiveX控件调用cryptoAPI接口(三)------------AES对称加密与解密
- 数据结构——用户登陆系统
热门文章
- What is a News Aggregator?
- 《扬帆优配》交易拥挤度达历史极值 当前A股TMT板块性价比几何?
- Swift @escaping 属性
- Keil5 “Loading PDSC Debug Description Failed for STMicroelectronics STM32Hxxxxxxx”解决办法
- 【100%通过率】华为OD机试真题 JS 实现【数字加减游戏】【2023 Q1 | 100分】
- css左边固定,右边自适应
- mysql优化 个人笔记 非礼勿扰 -m04
- Uipath实现简单的滑块拖动验证
- python终结一个循环额_103.md · 小小懒羊羊/StarterLearningPython - Gitee.com
- c++制作小游戏2048