zoukankan      html  css  js  c++  java
  • iOS RunLoop面试题

    一 什么是RunLoop?

    从字面意思看就是运行循环,其实内部就是do-while循环,这个循环内部不断地处理各种任务(比 如Source,Timer,Observer)

    一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop得手动启动(run方法)

    RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Source,Timer,Observer,那么就直接退出RunLoop

    二 你在开发过程中怎么使用RunLoop?什么应用场景?

    开启一个常驻线程(让一个子线程不进入消亡状态,等待其他线程发来的消息,处理其他事件)

    在子线程中开启一个定时器

    在子线程中进行一些长期监控

    可以控制定时器在特定模式下运行

    可以让某些事件(行为,任务)在特定模式下执行

    可以添加observer监听RunLoop的状态,比如监听点击事件的处理(比如在所有点击事件前做一些处理)

    三 自动释放池什么时候释放?

    在RunLoop睡眠之前释放(kCFRunLoopBeforeWaiting)

  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/PSSSCode/p/5453116.html
Copyright © 2011-2022 走看看