美文网首页
runloop的原理笔记

runloop的原理笔记

作者: 明似水 | 来源:发表于2017-03-14 20:01 被阅读37次

一般来说,一个线程一次只能执行一个任务,执行完成后线程就会推出。如果我们需要一个机制,让线程随时处理事件但并不退出,通常用do {}while 来处理。

这种称之为Event loop,在Windows和node.js或者OSX/IOS里面都可以看到,它的关键点是:如何管理事件与信息,如何让线程在没有处理消息和事件时休眠以避免资源占用、在有消息到来时立刻被唤醒。

所以,runloop实际上就是一个对象,这个对象管理了其需要处理的事件和消息,并提供了一个入口函数来执行上面的Event Loop逻辑。线程执行了这个函数后,就会一直处于这个函数内部“接受消息——>等待——>处理”的循环中,直到传入quit消息,函数返回!

iOS中提供了两个对象:NSRunLoop和CFRunLoopRef

线程和runloop之间是一一对应的,其关系是保存在一个全局的dictionary里。线程刚创建时并没有RunLoop,如果你不主动获取,那它一直都不会有,

从iOS5推出ARC开始,我们就不用MRC了!

END.

相关文章

  • runloop的原理笔记

    一般来说,一个线程一次只能执行一个任务,执行完成后线程就会推出。如果我们需要一个机制,让线程随时处理事件但并不退出...

  • runloop

    runloop是什么 runloop与线程有什么关系 runloop的原理 runloop的使用

  • RunLoop简介

    RunLoop简介 RunLoop底层实现原理 RunLoop接收输入事件的2种来源 RunLoop对象 开源的C...

  • iOS RunLoop应用分析—原来这些都在使用RunLoop

    之前已经介绍过RunLoop原理,感兴趣的同学可以阅读iOS——解密RunLoop原理[https://xiaoz...

  • RunLoop研究

    目录: App启动原理 RunLoop 的概念 RunLoop 与线程的关系 RunLoop 对外的接口 RunL...

  • RunLoop的概念及作用

    1.RunLoop的概念及作用 2.RunLoop的使用 3.RunLoop的相关类 4.RunLoop的工作原理...

  • RunLoop

    1.RunLoop的概念及作用 2.RunLoop的使用 3.RunLoop的相关类 4.RunLoop的工作原理...

  • Runloop

    Runloop 实现原理及应用iOS - RunLoop 底层源码详解及具体运用

  • 探寻RunLoop的本质

    iOS底层原理总结 - RunLoop 面试题 讲讲 RunLoop,项目中有用到吗? RunLoop内部实现逻辑...

  • RunLoop 原理和核心机制(摘自网络)

    RunLoop 原理和核心机制

网友评论

      本文标题:runloop的原理笔记

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