采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
同学你好,有些任务对主线程与否是有要求的,可能必须跑在主线程,是针对这种说的。
老师,我先问问,什么任务必须跑在主线程。面试中遇到面试官问我这个问题,但是我答不上来具体的使用场景,导致他觉得我只会说没遇到过。 能具体说几个必须在主线程跑的任务吗
内部sdk: 1.handler初始化在初始化方法 2.handler发送的内部任务,有UI渲染的任务 我只能想到满足这两个条件的情况下,才必须在主线程跑。
你可以这么说,所有任务都是优先放在子线程的,除了有必须要求的。如下 1. 任务内部要求必须执行在主线程的,比如某 SDK 的初始化,文档上就要求了需要主线程运行(比如判断不是主线程就要报错、有些库的某些方法会被打上 MainThread 注解、直接创建了无参的 Handler 等) 2. 非常重要的小任务,重要会被别的任务使用到的 SDK 如往路由表中做注册操作,如果是放在子线程中执行,后续别的任务使用到的时候可能注册操作还没完成 3. 还有就是 UI 渲染相关的任务
登录后可查看更多问答,登录/注册
由表及里学到国内Top团队对性能问题的体系化解决方案
1.4k 38
1.2k 12
1.4k 9
1.3k 9
1.0k 9