iOS面试

iOS RunLoop

2021-10-06  本文已影响0人  All_Be_Alright

RunLoop

1、概念

RunLoop是通过内部维护的事件循环,来对事件/消息进行管理的一个对象

2、事件循环:

事件循环 RunLoop

3、数据结构

NSRunLoop是不开源的,CFRunLoop是开源的

数据结构 CFRunLoop CFRunLoopMode CFRunLoopTimer 数据关系

4、RunLoop的Mode

多Mode CommonMode

5、事件循环的实现机制

实现机制

🌰:main函数调用后会调用UIApplicationMain方法,方法内部会启动主线程的RunLoop,经过一系列处理,主线程的RunLoop处于休眠状态,此时点击一下屏幕会产生一个mach-port,会转换成一个Source1,唤醒主线程,然后运行处理,当程序被杀死就会退出RunLoop,线程被杀死。

6、RunLoop的核心

RunLoop的核心

7、RunLoop与NSTimer

RunLoop与NSTimer CFRunLoopAddTimer CFRunLoopAddItemToCommonModes

8、RunLoop与多线程

RunLoop与多线程

获取当前线程的RunLoop,如果当前线程没有RunLoop会自动创建一个

[NSRunLoop currentRunLoop];
image-20211006121545588 常驻线程
上一篇 下一篇

猜你喜欢

热点阅读