iOS总结篇-RunLoop

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS总结篇-RunLoop相关的知识,希望对你有一定的参考价值。

参考技术A RunLoop是一个事件循环,让线程休眠和线程保活成为了可能,线程休眠可以节省CPU资源;

RunLoop处理消息的流程是“ 接收消息->恢复活跃->处理消息->进入休眠 ”。

一个RunLoop包含了多个Mode,每个Mode又包含了若干个Source/Timer/Observer。每次调用 RunLoop的主函数时,只能指定其中一个Mode,这个Mode被称作CurrentMode。如果需要切换 Mode,只能退出Loop,再重新指定一个Mode进入。这样做主要是为了分隔开不同Mode中的Source/Timer/Observer,让其互不影响。

1.NSTimer中底层用到了RunLoop。

2.Autorelerasepool也是用了RunLoop的原理进行内存的回收

3.创建NSTimer的时候,也是用到了RunLoop,performSelecter:afterDelay使用时。

4.事件的交互,触摸屏幕或者硬件的交互,也用到了RunLoop。

5.UI界面刷新。

6.调用了dispatch_async(dispatch_get_main_queue(), block)时,主队列会把该 block 放到对应的线程(恰好是主线程)中,主线程的 RunLoop 会被唤醒。

7.AFNetWorking 3.0以前的线程保活。

8.可以用来监控系统卡顿。

以上是关于iOS总结篇-RunLoop的主要内容,如果未能解决你的问题,请参考以下文章

Java 总结思考Java 答疑解惑之 IO 篇

五月这一篇百度 iOS 面试总结轰动整个开发界头条热搜

iOS超全开源框架项目和学习资料汇总AppleWatch经典博客三方开源总结篇

这10篇 iOS 热文,你别错过哦

2021前端面试总结

12-1 课程总结