Android开发Android开发经验谈Android技术知识

@Android程序员:这 5 道刁钻的线程相关题,你会几道?

2020-06-17  本文已影响0人  4ca1bbef6a0c

今天我们一起来看五道线程相关的面试题,相信看完之后面试官再问到相关的问题,你就能胸有成竹了。

1. 直接在Activity中创建一个thread跟在service中创建一个thread之间的区别?

2.IntentService有什么用 ?

IntentService 是 Service 的子类,是一个异步的,会自动停止的服务,很好解决了传统的 Service 中处理完耗时操作忘记停止并销毁 Service 的问题,生成一个默认的且与线程相互独立的工作线程执行所有发送到onStartCommand()方法的 Intent,可以在 onHandleIntent()中处理. 串行队列,每次只运行一个任务,不存在线程安全问题,所有任务执行完后自动停止服务,不需要自己手动调用 stopSelf()来停止

3.除了notify还有什么方式可以唤醒线程?

4.线程池中的几个参数是什么意思,线程池的种类有哪些?

线程池的构造函数如下:

public ThreadPoolExecutor(int corePoolSize,
 int maximumPoolSize,
 long keepAliveTime,
 TimeUnit unit,
 BlockingQueue<Runnable> workQueue) {
 this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,
 Executors.defaultThreadFactory(), defaultHandler);}

参数解释如下:

· corePoolSize:核心线程数量,不会释放。

· maximumPoolSize:允许使用的最大线程池数量,非核心线程数量,闲置时会释放。

· keepAliveTime:闲置线程允许的最大闲置时间。

· unit:闲置时间的单位。

· workQueue:阻塞队列,不同的阻塞队列有不同的特性。

线程池分为四个类型:

· CachedThreadPool:闲置线程超时会释放,没有闲置线程的情况下,每次都会创建新的线程。

· FixedThreadPool:线程池只能存放指定数量的线程池,线程不会释放,可重复利用。

· SingleThreadExecutor:单线程的线程池。

· ScheduledThreadPool:可定时和重复执行的线程池。

5.Handler、Thread和HandlerThread的差别?

总结

线程相关的知识很重要,这也是面试常问的原因。

最后在这里我也分享一份大佬自己收录整理的Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料这些都是我闲暇还会反复翻阅并给下属员工学习的精品资料。在脑图中,每个知识点专题都配有相对应的实战项目,可以有效的帮助大家掌握知识点。

总之也是在这里帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习

最近面试被怼了?缺面试题刷提升自己吗?

点击:

《Android学习PDF+架构视频+面试文档+源码笔记》

来获取学习资料提升自己去挑战一下BAT面试难关吧

你有遇到过什么刁钻的面试题吗,欢迎留言分享~

上一篇下一篇

猜你喜欢

热点阅读