runloop
2016-09-29 09:25:11 0 举报
RunLoop是iOS开发中非常重要的一个概念,它负责协调和调度程序中的事件和任务。简单来说,RunLoop就是一个事件循环,它会不断地检查并执行注册在它里面的各种事件源(如输入源、定时器等)的任务。当没有任务需要执行时,RunLoop会进入休眠状态,以节省系统资源。通过使用RunLoop,开发者可以更好地控制程序的执行流程,实现复杂的交互逻辑。在iOS开发中,NSRunLoop和CFRunLoop是两个常用的RunLoop实现类,分别用于Objective-C和C语言编程。
作者其他创作
大纲/内容
NSRunloop
计时器
线程和runloop是一一对应的
10.即将退出Runloop
实现常驻线程
7.线程刚被唤醒, 发送消息给observer
6.退出Exit
4.多mode 事件同步方案 commonModes
3.mach_mag在一定条件下,会返回给调用方,触发返回的逻辑 就是唤醒线程的逻辑, source1、timer、外部手动唤醒,触发核心态到用户态的切换,当前app的主运行循环就会被唤醒
实现机制
2.将要处理 timer 和sourcer0 事件,发送消息给observer
事件循环
1.没有消息处理,休眠以减少资源占用(用户态到内核态的切换)
应用
和计时器可以桥转换
2.main函数经过一些处理 ,会调用mach_msg,发生系统调用,经过系统调用,将当前线程控制权从 应用态切换到内核态的切换,
3.多个Source1
多线程
含义
5.结束休眠AfterWaiting
2.多个modemodes
1.为当前线程开启一个runloop NSRunloop CurrentRunlop
2.向该runloop添加一个port/Source来维持事件的循环
1.线程pthread
本质
Runloop
5.如果没有sourcer1 线程将要休眠, 发送消息给observer
数据结构
3.当前mode模式currentMode其余mode事件不执行
滑动tableview, 定时器还会生效吗?
4.多个Observer
2.是对消息、事件进行管的
注册观察者,6个观察时机
3.一个对象
3.处理sourcer0
事件循环是什么
线程
4.多个Timers
什么是runloop
3.将要处理sourcesbeforeSource
别名。对应当前mode模式DefaultMode
3.启动该runloop
1.正常是在defaultMode下,滑动是 mode会切换 到trackingMode 此时defaultmode下的对应时间就不会处理了
2.有消息处理,唤醒以处理消息(内核态到用户态的切换)
2.多个Source0
1.通过内部维护的事件
手动唤醒
事件循环过程
结构
什么是事件循环
具备唤醒能力
即将进入Runloop1.runloop启动之后,发送消息给observer
1.启动Entry
5.多mode同步方案事件 comomModeItems
9.8完成再次回到2
1.是用户态和内核态的相互转换
4.如果有source1 处理Sourcer1(goto 到代码逻辑跳转到8,处理唤醒时收到的消息)
是什么
2.将要处理Timersbefore timer
关系
1.name
自己创建的线程 runloop没有默认开启的
对CFRunloop的封装
4.将要休眠beforeWaiting
0 条评论
下一页