RunLoop

1.到底什么才是RunLoop,简述
RunLoop实际上就是个do-while运行循环,其本质保证程序运行不退出从而监听APP滑动、点击、timer等事件。循环内部没有事情的时候是休眠状态(sleep_and_wait())等待消息的到来,监听到消息之后去执行消息(process_message(msg))。

2.线程和RunLoop的关系
线程和Runloop是一对一的关系,每个线程内部肯定都有一个runloop,每一个runloop中可能维护着多个mode,CPU会在多个线程间切换来执行任务,呈现出多个线程同时执行的效果。
执行的任务其实就是RunLoop去各个Mode里执行各个item;
主线程默认开启NSDefaultRunLoopMode,子线程需要手动开启runloop才行。

3.RunLoop的应用
crash 监听
线程保活
Timer添加mode

4.RunLoop内部实现方式 及工作流程

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。