一:什么是Runloop
Runloop,正如其名,loop表示某种循环,和run放在一起就表示一直在运行着的循环
二:Runloop的创建?
iOS并没有提供Runloop的创建方法,因为创建了现场自然会有一个Runloop. 所以只有获取Runloop的方法:
NSRunLoop * runloop = [NSRunLoop currentRunLoop];
//看源码,runloop可以做很多操作,例如我们熟悉的把NSTimer添加到Runloop里
[runloop addTimer: forMode: ];
以下是Xcode复制的部分源码:
三:Runloop 可以做什么?
crash 起死回生
线程保活
四:线程跟Runloop有什么关系?
线程和Runloop是一一对应的关系,且它俩是以键值对的方式存储在一个全局的可变字典里,key为线程,value为Runloop
详情可看这篇文章:https://zhuanlan.zhihu.com/p/111544827