面试题:RunLoop 运行时机制

一、运行循环

程序在启动的时候,就默认在主线程启动一个runLoop;其它线程的runloop需要手动启用;

runloop只能有一个runloopMode模式,如果当前mode模式下没有source、timer、observer事件那么就退出runloop模式;

二、runloop和线程之间的关系

1、一条线程对应一个runloop对象,每一个线程都对应唯一的一个runloop对象;

2、runloop并不能保证线程安全,只能在当前线程中操作当前的runloop对象,而不能在当前runloop内操作其它线程的runloop对象;

3、runloop对象在第一次获取runloop时创建,在线程结束后销毁;

三、runloop的Mode模式

NSDefaultRunLoopMode、UITrackingRunLoopMode、kCFRunLoopCommonModes(伪模式)

UITrackingRunLoopMode属于追踪模式,用于追踪继承自UIScrollview的滚动,保证其流程。

你可能感兴趣的:(面试题:RunLoop 运行时机制)