Android并发编程高级面试题汇总(含详细解析 十八)

104 阅读2分钟

Android并发编程高级面试题汇总最全最细面试题讲解持续更新中👊👊 👀你想要的面试题这里都有👀 👇👇👇

Android开发中怎样判断当前线程是否是主线程 (字节跳动)

这道题想考察什么?

是否了解怎样获取当前线程是否是主线程有哪些与真实场景使用,是否熟悉怎样获取当前线程是否是主线程在工作中的表现是什么?

考察的知识点

怎样获取当前线程是否是主线程的概念在项目中使用与基本知识

考生应该如何回答

Android开发中, 有时需要判断当前线程到底是主线程, 还是子线程, 例如: 我们在自定义View时, 想要让View重绘, 需要先判断当前线程到底是不是主线程, 然后根据判断结果来决定到底是调用 invalidate() 还是 postInvalidate() 方法。

在工作中获取当前的主线程,主要是借助Android中的Looper:

Looper.getMainLooper() == Looper.myLooper();
Looper.getMainLooper().getThread() == Thread.currentThread();
Looper.getMainLooper().getThread().getId() == Thread.currentThread().getId();

线程间如何通信?

这道题想考察什么?

是否了解线程间如何通信与真实场景使用,是否熟悉线程间如何通信该如何操作的本质区别?

考察的知识点

Handler

考生应该如何回答

线程之间进行通信的方式需要基于具体需求分析,如果仅仅只是为了完成线程间的同步,使用锁如synchronized 即可;如果需要完成线程之间的协作,也可以采用wait/notify、CountDownLatch或者Cyclicbarrier等方式。而在Android中还设计了Handler机制可以完成线程间通信。

Handler是Android系统中线程间传递消息的一种机制。

更多Android进阶指南 可以详细Vx关注公众号:Android老皮 解锁 《Android十大板块文档》

1.Android车载应用开发系统学习指南(附项目实战)

2.Android Framework学习指南,助力成为系统级开发高手

3.2023最新Android中高级面试题汇总+解析,告别零offer

4.企业级Android音视频开发学习路线+项目实战(附源码)

5.Android Jetpack从入门到精通,构建高质量UI界面

6.Flutter技术解析与实战,跨平台首要之选

7.Kotlin从入门到实战,全方面提升架构基础

8.高级Android插件化与组件化(含实战教程和源码)

9.Android 性能优化实战+360°全方面性能调优

10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔