面试官问你Java线程池--怎么样回答才能让面试官知道你真的懂了(1)

2.CacheThreadPool

CacheThreadPool 核心线程数为0,最大线程数没有限制最大为Integer.MAX_VALUE,keepAliveTime默认为60s,工作队列是SynchronousQueue不存储任务的队列。因为最大线程数没有限制,所以可能导致创建线程失败,虚拟内存耗尽从而导致OOM。

3.SingleThreadExecutor

SingleThreadExecutor 核心线程数为1,非核心线程数为0,工作队列使用的是LinkedBlockingQueue无界队列

正因为工作队列是LinkedBlockingQueue所以可能会导致OOM。

4.ScheduledThreadPool

ScheduledThreadPool 可以知道核心线程数,最大线程数没有限制,工作队列是DelayedWorkQueue,可以实现周期性执行任务。因为非核心线程数没有限制,所以可能导致创建线程失败,虚拟内存耗尽从而导致OOM。

5.ForkJoinPool

基于工作窃取和分治思想实现的一个线程池,适合CPU密集型的计算。

四.线程池的工作流程?为什么不要用Java自带的线程池?


这个问题上面已经剖析了,因为Java自带的线程池,要么用的无界队列,要么最大线程数没有做限制,这两种情况在并发任务特别多的时候,都有可能导致OOM。

线程池的构造方法如下:

public ThreadPoolExecutor(int corePoolSize,

int maximumPoolSize,

long keepAliveTime,

TimeUnit unit,

BlockingQueue workQueue,

ThreadFactory threadFactory,

RejectedExecutionHandler handler) {}

在向面试官说线程池的工作流程的时候。先提下现场池的构造方法。

corePoolSize:指定核心线程的数量 根据任务是CPU密集型还是IO密集型来制定核心线程的数量。

CPU密集:corePoolSize = CPU核心数

IO密集:corePoolSize = 2 * CPU核心数 + 1

是比较合适的。

maximumPoolSize:指定线程池中最大线程数限制

非核心线程的最大数量 = maximumPoolSize - corePoolSize

keepAliveTime:非核心线程空闲时间,超过

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。

人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。

资源持续更新中,欢迎大家一起学习和探讨。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

P、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值