面了一个校招生,竟然说我是老古董

引言

作为一名资深的 Java 摸鱼工程师

又到了一年一度的校招季,老板笑嘻嘻地递来了简历,语重心长地对我说:"给团队注入点新鲜血液!"

我信心满满地打开视频面了这个同学,结果......他直接甩了我一句"老古董",然后啪,把视频挂了。

我:???

面试中

买了一杯星巴克,我坐进了电话亭,看了一下简历

学历不错嘛,985本硕,字节、蚂蚁、阿里实习一圈,还自称"精通多线程、高并发"。我抿了一口咖啡,内心OS:"小伙子挺能吹,看我待会儿怎么用八股文给你上上强度。"

连线中.....

我(职业假笑):"你好,是狂少同学吗?我是xx公司面试官,看你简历写有多线程高并发经验,咱直接从这个开始吧?"

狂少表现的略显紧张:"emmm,好的,老师,您问"

作为一名专业的面试官,面试一定要由浅入深,挖掘面试者最大的潜能,我起手先来一句:"线程池使用过吗?给我讲一下他的基本参数有哪些?"

狂少:"好的,老师,我使用过线程池,我先给您简单介绍一下线程池的基本参数,首先第一个参数是核心线程数 corePoolSize,他是常驻在系统里的,不会被销毁"

"stop,停一下",我心想你小子还是年轻光知道背八股是吧,我直接打断施法,冷笑一声继续说到 "核心线程数一定不会被销毁么?你说错了"

空气突然安静,我心里此时想到,"不愧是我,还得是我经验老道"

狂少补充到:"老师,我的意思是没,一般情况下是不会被销毁的,当然你要是想销毁是可以通过 executor.allowCoreThreadTimeOut(true) 来设置的"

我清了清嗓:"咳咳,对,这个作为程序员我们表达要严谨,你看看我差点误解你了,行,那你继续说说你一般是怎么设置这个线程池的核心线程数的"

狂少回答到:"一般情况下,我们在开始压测前都有一个理想值,然后我们都是根据业务场景来压测获得这个值的"

"啥玩意回答的,这不是我想听的八股",但是作为一名好的面试官,我要学会引导面试者,于是我很耐心的说到"真正干活中哪里来的这么多时间给你压测,直接按照 CPU 密集型是 N+1,IO 密集型是 2N 就行"

狂少这时候皱了一下眉头,我心想:"你这小子还不相信",于是我直接一个电子书发到了他的钉钉上,"同学,我发你一本《Java并发编程》电子版,第八章明明白白写着呢!菜就多练"

这个时候狂少突然被我说的,脸上挂不住,反问了我一句:"老登,Tomcat默认线程数你说是2N吗?为什么是2N?你知不知道它实际怎么设置的?"

我一时以为我听错了,我不是老师么,怎么变成老登了

"为什么设置 2N,书都发给你了不会看,线程数等于 CPU 核心数 * CPU 利用率 * (1 + CPU 等待时间/CPU 计算时间),这个公式下 IO 密集型的 计算时间 = 等待时间,那就是 CPU 核心数 * CPU 利用率 * 2,我设置 2N 一点毛病没有" 我脸红耳赤的争辩到

这时狂少突然提高了音量:"哼,还 2N,你不通过压测你怎么知道适合你的业务场景,我告诉你,我之前接触过的一个场景,我们都是设置 5N 的核心线程数,你那一套早过时了"

我继续争辩到:"你是书包么,这么能装,还 5N ,书上还能写错不成,你 5N 你的线程上下文切换开销你受得了么"

"都 2025 年了,还在 CPU 上下文切换开销,现在的机器上下文切换耗时都只在 1~5 微妙,你告诉我这有什么耗时,这点损耗计较个鸡毛啊,肯定得压测才能得出具体合适的值,老古董,我不面了"

我(试图挽尊):"你别走!我还没......"

嘟------嘟------嘟------

电话亭里,只剩下我,一杯凉透的星巴克 以及空气中循环播放的"老古董......老古董......老古董......"

结尾

(一阵急促的敲门声突然响起)

我没好气的说到:"谁啊?!没看见正在面试呢"

门缓缓打开,只见老板端着两杯热腾腾的拿铁走了进来。老板笑眯眯的说:"面得怎么样?"

我:"别提了,现在年轻人太狂了,说我是老古董..."

老板拍拍了我肩:"知道为什么我特意让你面他吗?"

老板突然压低声音:"那是公司刚挖来的CTO的儿子,专门让他来试试水深的。"

我瞬间石化了:"卧槽?!你不早说?!"

老板这时候给我递过拿铁:"稳住!他刚给我发消息了..."

(手机屏幕亮起)

狂少:你们这面试官有点东西啊,虽然古板但基础挺扎实,就是需要一点变通

我:"!!!!!!"

(手中的拿铁剧烈颤抖)

远处隐隐传来老板的补刀:"他说下周要来给你做专场培训..."

相关推荐
uhakadotcom2 小时前
静态代码检测技术入门:Python 的 Tree-sitter 技术详解与示例教程
后端·面试·github
幂简集成explinks2 小时前
e签宝签署API更新实战:新增 signType 与 FDA 合规参数配置
后端·设计模式·开源
River4162 小时前
Javer 学 c++(十三):引用篇
c++·后端
RoyLin2 小时前
TypeScript设计模式:迭代器模式
javascript·后端·node.js
爱海贼的无处不在3 小时前
一个需求竟然要开14个会:程序员的日常到底有多“会”?
后端·程序员
IT_陈寒4 小时前
Java 性能优化:5个被低估的JVM参数让你的应用吞吐量提升50%
前端·人工智能·后端
bobz9654 小时前
进程面向资源分配,线程面向 cpu 调度
面试
南囝coding4 小时前
《独立开发者精选工具》第 018 期
前端·后端