iOS中的神秘事件RunLoop

  1. 什么是RunLoop

    • 从字面意思上来看:就是运行循环,跑圈
    • 究其内部也就是一个do-while循环,在这个循环内部不断地处理各种任务(比如Source,Timer,Observer)
    • 一个线程对应着一个RunLoop,主线程的RunLoop默认是开启的,这就是为什么APP程序可以一直运行的原因,但是子线程的RunLoop必须手动开启
    • RunLoop在运行的时候是分状态运行的,如果当前Mode下没有任何的Source,Timer,那么RunLoop就会直接退出
  2. RunLoop的使用场景

  • 开启一个常驻线程(让一个子线程不进入消亡状态,等待其他线程发来消息,处理事件)
    例如:
    • 在子线程开启一个定时器
    • 在子线程进行一些长期监控
    • 在子线程进行网络下载任务
  • 可以控制定时器在特定的模式执行
  • 可以让某些事件,行为,任务在特定的模式下执行
  • 可以添加Observer监听RunLoop的状态,比如监听点击事件处理(即拦截RunLoop的一些行动,在其之前做一些事情)

你可能感兴趣的:(iOS中的神秘事件RunLoop)