runloop和线程有什么关系?

Posted 黄增松的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了runloop和线程有什么关系?相关的知识,希望对你有一定的参考价值。

  • 每条线程都有唯一的一个RunLoop对象与之对应的
  • 主线程的RunLoop是自动创建并启动
  • 子线程的RunLoop需要手动创建
  • 子线程的RunLoop创建步骤如下:

    • 在子线程中调用[NSRunLoop currentRunLoop]创建RunLoop对象(懒加载,只创建一次
    • 获得RunLoop对象后要调用run方法来启动一个运行循环

      // 启动RunLoop
      [[NSRunLoop currentRunLoop] run];
      
    • RunLoop的其他启动方法

      // 第一个参数:指定运行模式
      // 第二个参数:指定RunLoop的过期时间,即:到了这个时间后RunLoop就失效了
      [[NSRunLoop currentRunLoop] runMode:kCFRunLoopDefaultMode beforeDate:[NSDate distantFuture]];

以上是关于runloop和线程有什么关系?的主要内容,如果未能解决你的问题,请参考以下文章

autorelease和runloop和线程的关系?

iOS 子线程用runloop保活的一个方案

runloop应用之iOS线程保活

iOS 利用runloop阻塞主线程

『ios』根据runloop设计保活线程

RunLoop总结:RunLoop的应用场景