RunLoop笔记

1:runloop是什么 

runloop其实是一个对象,提供一个入口函数,程序启动的时候,程序就会进入一个运行循环,内部其实是个do...while循环

2:runloop的作用

1:保证程序正常运行

2:处理app中的各种事件 (触摸,定时器,performSelector)

3:节省cpu资源,提高程序的性能(该做事的时候被唤醒做事,该休息的时候,就进入休眠状态休息)

3:runloop和线程的关系

主线程runloop和线程之间的存储
子线程runloop和线程之间的存储,都是一一对应的关系,子线程中runloop默认不开启的,需要手动开启

4:runloop源码分析-runloop对象和mode

一个runloop可以包含多种mode,一个mode包含多个item

常用的model,CFRunLoopModeRef{

kCFRunLoopDefaultMode  App的默认 Mode,通常主线程是在这个 Mode 下运行的.

UITrackingRunLoopMode  界面跟踪 Mode,用于 ScrollView 追踪触摸滑动,保证界面滑动时不受其他 Mode 影响.

UIInitializationRunLoopMode 在刚启动 App 时第进入的第一个 Mode,启动完成后就不再使用.

GSEventReceiveRunLoopMode 接受系统事件的内部 Mode,通常用不到.

kCFRunLoopCommonModes 这是一个占位的 Mode,没有实际作用.

}

5:runloop原理

6:待续.....

你可能感兴趣的:(RunLoop笔记)