首页天道酬勤安卓面试题,android多线程面试题

安卓面试题,android多线程面试题

张世龙 05-05 22:53 94次浏览

多线程复杂,内容很多,大块的大家都去看了我的多线程文章,几乎都覆盖了。 这里有以下问题。 无论怎么回答,我都不会大量介绍知识点

复习多线程时,需要学习以下内容:

线程池、SYNC和Lock锁定机制、线程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、计数下行latch、AQS和CAS原理

以下不写:

atomic和volatile有什么区别?

Thread对通告(为通告所有) )的区别是什么?

notifiy () )是唤醒的线程吗?

Thread.sleep ()清醒后需要重新竞争吗?

GC回收算法及实现原理?

JVA多线程的基础部分

继承Thread类

Runnable接口的实现

JVA多线程的高级部分

wait ()、notify ) )等待通知方式

联合(方式

卷共享内存

计数下行latch、循环载体并发工具和功能与连接相同

interrupt ()线程响应中断

线程池等待时间(),等待如何退出线程池任务。 必须关闭线程池才能启用此方法

PipedWriter、PipedReader管道通信方式

空腹汉式单实例模式的写法:线程安全

如何写入zxddr表达式单实例模式:非线程安全

双锁一例模式的写法:线程安全

安卓自身的部分

首先谈谈handle的四个角色:

在内部具有handler-messagequeue消息队列,在发送消息时将message.obj指向handle自身,从而实现最终的消息执行

消息队列-消息队列,消息的存储单位

looper -遍历消息队列,启动主线程的阻塞死循环

使用消息处理程序发送消息时,其内部的obj指向该处理程序的引用的通信的消息实体

下一个逻辑过程:

打开循环-每个线程只有一个Looper阻止循环,每个Looper对应一个消息队列; 在无限循环中遍历消息队列,如果里面有消息就处理消息,消息处理完成后继续循环,继续循环,这也是我们程序不退出的原因

发送消息-创建处理程序时,它由线程绑定,并获得相应线程的队列looper和消息队列。 发送消息的过程是在其他线程中将消息放入消息队列中

回调消息-当处理程序发送消息时,消息消息将被标记。 当looper遍历Message对象时,它现在到达主线程,Message.tag获取handler对象,并获取与回调对应的方法handler.handleMessage

handler.handle消息(msg ) )。

Handler.post(runnabler ) )

view.post (运行时r ) )。

活动的运行状况(运行状况r )。

运行到CyclicBarrier中某个线程所在的点后,该线程将停止,并且在所有线程到达此点之前,所有线程都不会重新运行。 计数下降跟踪不是这样,而是运行到某个点后,只需提供一个值-1,该线程就会继续

CyclicBarrier只能触发一个任务,CountDownLatch可以触发多个任务

CyclicBarrier是可重用的,计数下载latch是不可重用的。 如果计数值为0,则无法重用计数下降latch

android面试题2021,2019年下半年教师资格证面试时间