美文网首页
NSRunLoop作用

NSRunLoop作用

作者: 怎样m | 来源:发表于2017-12-12 17:11 被阅读44次

    NSRunLoop是IOS消息机制的处理模式

    NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的时候使当前NSRunLoop控制的线程工作,没有事情做让当前NSRunLoop的控制的线程休眠。

    NSRunLoop 就是一直在循环检测,从线程start到线程end,检测inputsource(如点击,双击等操作)异步事件,检测timesource同步事件,检测到输入源会执行处理函数,首先会产生通知,corefunction向线程添加runloop observers来监听事件,意在监听事件发生时来做处理。

    runloopmode是一个集合,包括监听:事件源,定时器,以及需通知的runloop observers
    runloop与线程的关系?

    只有在为你的程序创建次线程的时候,才需要运行run loop。对于程序的主线程而言,run loop是关键部分。Cocoa提供了运行主线程run loop的代码同时也会自动运行run loop。IOS程序UIApplication中的run方法在程序正常启动的时候就会启动run loop。如果你使用xcode提供的模板创建的程序,那你永远不需要自己去启动run loop

    在多线程中,你需要判断是否需要run loop。如果需要run loop,那么你要负责配置run loop并启动。你不需要在任何情况下都去启动run loop。比如,你使用线程去处理一个预先定义好的耗时极长的任务时,你就可以毋毋需启动run loop。Run loop只在你要和线程有交互时才需要
    进程和线程的区别?

    一个应用程序有且只有一个进程,一个进程有1个和多个线程
    线程生命周期

    当我们创建一个线程实例对象的时候,这个线程是创建状态

    当调用了start的方法的时候,线程被启动,此时进入就绪状态,等待CUP来执行

    获取CPU的资源正在执行,这个时候进入运行状态

    当线程执行完毕,或者被其他线程杀死的时候这个时候线程进入死亡状态,死亡状态的线程不可能在进入等待执行的就绪状态

    由于某些原因,线程需要暂停自己,让出CPU的资源,这个时候线程进入阻塞状态

    相关文章

      网友评论

          本文标题:NSRunLoop作用

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