搜索
您的当前位置:首页正文

RunLoop面试题

来源:二三娱乐

经常会有喜欢装B的面试官,面试的时候就喜欢问RunLoop,其实他真的会吗? 说不定他自己都不太理解
下面我对有关RunLoop的面试做一个简单的总结

什么是RunLoop?

从字面上看:运行循环、跑圈
其实它内部就是do-while循环,在这个循环内部不断的处理各种任务(比如Source、Timer、Observer)
一个线程对应一个RunLoop,主线程的RunLoop默认已经启动,子线程的RunLoop需要手动启动(调用run方法)
RunLoop只能选择一个Mode启动,如果当前Mode中没有任何Soure、Timer、Observer,那么就直接退出RunLoop
在开发中如何使用RunLoop?什么应用场景?

开启一个常驻线程(让一个子线程不进入消亡状态,等待其他线程发来消息,处理其他事件)
在子线程中开启一个定时器
在子线程中进行一些长期监控
可以控制定时器在特定模式下执行

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

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

Top