美文网首页iOS
RunLoop的数据结构

RunLoop的数据结构

作者: 二斤寂寞 | 来源:发表于2019-05-15 10:21 被阅读10次

    RunLoop的数据结构

    04.png

    CFRunLoop

    image.png
    • pthread:代表的是线程,RunLoop与线程的关系是一一对应的
    • currentMode:是一个CFRunLoopMode这样一个数据结构
    • modes:是一个包含CFRunLoopMode类型的集合(NSMutableSet<CFRunLoopMode*>)
    • commonModes:是一个包含NSString类型的集合(NSMutableSet<NSString*>)
    • commonModeItems:也是一个集合,在这个集合中包含多个元素,其中包括多个Observer,多个Timer,多个Source

    CFRunLoopMode

    image.png
    • name:名称,例如NSDefaultRunLoopMode,所以说是通过这样一个名称来切换对应的模式,例如在上面的commonModes里面都是名称字符串,也就是说通过这些名称来支持多种模式
    • source0:集合类型的数据结构
    • source1:集合类型的数据结构
    • obsevers:数组类型的数据结构
    • timers:数组类型的数据结构

    CFRunLoopSource

    11.png

    CFRunLoopTimer

    12.png

    CFRunLoopObserver

    13.png
    • kCFRunLoopEntry:RunLoop的入口时机,RunLoop将要启动的时候的回调通知
    • kCFRunLoopBeforeTimers:RunLoop将要处理Timer事件的时候
    • kCFRunLoopBeforeSources:RunLoop将要处理Source事件的时候
    14.png
    • kCFRunLoopBeforeWaiting:RunLoop将要进入休眠的时候,将要进行用户态到内核态的切换
    • kCFRunLoopAfterWaiting:RunLoop将要进入唤醒的时候,内核态到用户态的切换后不久
    • kCFRunLoopExit:RunLoop退出的时候

    相关文章

      网友评论

        本文标题:RunLoop的数据结构

        本文链接:https://www.haomeiwen.com/subject/zfuuaqtx.html