iOS开发笔记>> runLoop机制的简介

    xiaoxiao2025-06-03  40

    1. runLoop 是多线程很重要的机制, 就是一个线程一次只能执行一个任务, 执行完成任务后就会退出线程. 主线程通过 do-while 死循环让程序持续等待下一个任务不退出. runLoop 没事时进入休眠状态, 为了节省 CPU 资源. 子主线程通常来说就是为了执行某个任务而创建的, 执行完就会归还资源, 因此默认不开启 runLoop. 

    2. 每一个线程都有其对应的 runLoop, 只是默认只有主线程的 runLoop 是启动的, 其他子线程的 runLoop 默认是不开启的, 若要启动则需要手动启动

    3. 在一个单独的线程中, 如果需要在处理完某个任务后不退出, 继续等待接收事件, 则需要启动 runLoop. 

    4. NSRunLoop 提供了一个添加 NSTime 的方法, 可以指定 Mode, 如果要让任何情况下都回调, 则需要设置 Mode 为 Common 模式. 

    5. 实质上, 对于子线程的 runLoop 默认是不存在的, 因为苹果采用了懒加载的方式. 如果我们没有手动调用 [NSRunLoop currentRunLoop] 的话, 就不会去查询是否存在当前线程的 runLoop, 也就不会就加载, 更不会创建. 

    转载请注明原文地址: https://ju.6miu.com/read-1299562.html
    最新回复(0)