前言:
Run loop和它的名字一样,运行循环;可以保证程序的持续运行,它的本质是一个do-while的死循环。深入了解RunLoop可以让我们更好的使用多线程
Run Loop
Run Loop作用:
1、保证程序(线程)的持续运行
2、处理App中的各种事件(比如触摸事件、定时器事件、Selector事件)
3、节省CPU资源,提高程序的性能:该做事时做事,该休息时休息
4、调用解耦(Message Queue)
没有Run Loop情况:
在没有Runloop的情况下,程序不能保持持续的运行,在执行完任务时就会自动退出. 没有RunLoop.png模拟Run Loop:
前面说过,RunLoop是一个运行循环,在执行完任务的后进入下一个循环在此执行任务.
模拟运行循环.png
分析项目中的Main函数:
main.png获取Run Loop对象
获取RunLoop对象.pngRunLoop与线程的关系:
1、每条线程都有唯一的一个与之对应的RunLoop对象
2、主线程的RunLoop已经自动创建好了,子线程的Runloop需要主动创建
3、RunLoop在第一次获取时创建,在线程结束时销毁
网友评论