0
点赞
收藏
分享

微信扫一扫

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

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系统中线程间传递消息的一种机制。


举报

相关推荐

0 条评论