其他分享
首页 > 其他分享> > 2021年,大厂常问iOS面试题--Runloop篇

2021年,大厂常问iOS面试题--Runloop篇

作者:互联网

1.Runloop 和线程的关系?

2.RunLoop的运行模式

3.runloop内部逻辑?

内部逻辑:

1.  通知 Observer 已经进入了 RunLoop

2.  通知 Observer 即将处理 Timer

3.  通知 Observer 即将处理非基于端口的输入源(即将处理 Source0)

4.  处理那些准备好的非基于端口的输入源(处理 Source0)

5.  如果基于端口的输入源准备就绪并等待处理,请立刻处理该事件。转到第 9 步(处理 Source1)

6.  通知 Observer 线程即将休眠

7.  将线程置于休眠状态,直到发生以下事件之一

    *   事件到达基于端口的输入源(port-based input sources)(也就是 Source0)

    *   Timer 到时间执行

    *   外部手动唤醒

    *   为 RunLoop 设定的时间超时

8.  通知 Observer 线程刚被唤醒(还没处理事件)

9.  处理待处理事件

    *   如果是 Timer 事件,处理 Timer 并重新启动循环,跳到第 2 步

    *   如果输入源被触发,处理该事件(文档上是 deliver the event)

    *   如果 RunLoop 被手动唤醒但尚未超时,重新启动循环,跳到第 2 步

4.autoreleasePool 在何时被释放?

5.GCD 在Runloop中的使用?

6.AFNetworking 中如何运用 Runloop?

7.PerformSelector 的实现原理?

8.PerformSelector:afterDelay:这个方法在子线程中是否起作用?

9.事件响应的过程?

10.手势识别的过程?

11.CADispalyTimer和Timer哪个更精确

CADisplayLink 更精确

文章到这里就结束了,感谢你的观看,只是有些话想对读者们说说:

iOS开发人群越来越少,说实在的,每次在后台看到一些读者的回应都觉得很欣慰,至少你们依然坚守iOS技术岗…为了感谢读者们,我想把我收藏的一些编程干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

如果你用得到的话可以直接拿走;如何获取,具体内容请转看-我的GitHub
我的:GitHub地址

标签:面试题,常问,Observer,--,self,Timer,线程,Runloop,RunLoop
来源: https://www.cnblogs.com/orang123/p/14769165.html