iOS中的神秘事件RunLoop

  1. 什么是RunLoop

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

  • 开启一个常驻线程(让一个子线程不进入消亡状态,等待其他线程发来消息,处理事件)
    例如:
    • 在子线程开启一个定时器
    • 在子线程进行一些长期监控
    • 在子线程进行网络下载任务
  • 可以控制定时器在特定的模式执行
  • 可以让某些事件,行为,任务在特定的模式下执行
  • 可以添加Observer监听RunLoop的状态,比如监听点击事件处理(即拦截RunLoop的一些行动,在其之前做一些事情)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容