Runloop和线程的关系
2019-09-25 本文已影响0人
吕建雄
Runloop和线程的关系
1、一一对应,主线程的Runloop自动创建,子线程的Runloop必须手动创建
2、Runloop在第一次获取时创建,在线程结束时销毁
在Runloop中有多个运行模式,但是只能选择一种运行模式,mode中至少要有一个timer、source或者observer
关于mode:
系统默认注册5个mode,
1、NSDefaultRunLoopMode,APP默认mode,通常主线程在这个mode下运行
2、UITrackingRunLoopMode,界面跟踪mode,用于ScrollView追踪触摸滑动,保证滑动时不受其他mode影响
3、NSRunloopCommonModes,相当于NSDefaultRunLoopMode+UITrackingRunLoopMode
4、UIInitializetionRunLoopMode,刚启动APP时进入的第一个mode,启动完成后不再使用
5、GSEventReceiveRunLoopMode,接收系统事件的内部mode,通常用不到
系统暴露的5个Mode Observer在runloop中的循环