美文网首页ios开发
iOS开发 runLoop

iOS开发 runLoop

作者: 微_涼 | 来源:发表于2017-12-14 16:55 被阅读10次

    从应用的角度来看,runLoop的作用是保证应用能够一直进行下去,不退出;
    从程序的角度看,runLoop是保证其所在的线程不退出
    保证线程不退出的方法通常为两种:
    1:线程的任务执行不完(死循环)
    2:每条线程都有一条runLoop,并且让runLoop运行起来
    每条线程的内部都有一个runloop,但是默认都没有开启,在子线程中的runLoop执行完后就会立即释放掉,(底层cpu调度完成之后就释放了)即使使用全局变量对这条子线程进行强引用,,但是强引用只是保证这条线程的OC对象没释放,但是底层cpu调度玩这条线程之后,便不会在线程池中使用了
    ,一旦开启便会一直运行,

    主要有三个部分构成:
    observer:主要负责监听事件
    source:事件源,分为source0和source1,source0为非系统事件,source1为系统事件
    timer:

    共有五种模式,分别是:
    kCFRynLoopDefaultMode:App的默认Mode,通常主线程是在这个Mode下运行
    UITrackingRunLoopMode:界面跟踪Mode,用于ScrollView追踪触摸滑动,保证界面滑动时不受其他Mode影响
    kCFRunLoopCommonModes:这是一个占位用的Mode,不是一种真正的Mode(包括kCFRynLoopDefaultMode和UITrackingRunLoopMode)
    UIInitializationRunLoopMode:在刚启动App时进入的第一个Mode,启动完成后不再使用
    GSEventReceiveRunLoopMode:接受系统内核事件的内部Mode,通常用不到

    相关文章

      网友评论

        本文标题:iOS开发 runLoop

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