2年大厂经验,面试还是太紧张,90%的人不会写

作者: 极海Channel分类: 计算机技术 发布时间: 2023-07-02 12:57:59 浏览:41083 次

2年大厂经验,面试还是太紧张,90%的人不会写

InnocentDays:
在一个小厂写业务,基本上全是crud,感觉没什么提升了,下班时间又没力气学习,最近有点焦虑。虽然还是自己懒的原因,哎。

【回复】同在小厂,毕业刚一年,以前天天都是crud,现在没啥项目了,天天看jdk的源码,还有一些编程的书,一开始的时候就看的多线程源码,后来到网络编程,看了一段时间后觉得编程其实没有太大的意义了,但是我们都是普通人一个,学生时代已经过去,要开始独立面对现实,规划未来了,说到规划未来我就头疼,刚意识到要规划未来的时候还挺有干劲的,每天学这又学那,想着不断充实自己,强大自己,但一段时间之后我又开始反思,学会了那些技术,未来就是我想要的未来吗?我甚至都不知道我想要怎样的未来。这两年行情摆在那里,懂得都懂。 最近时常睡不着,想着编程技术对我来说意义是什么,对未来的意义又是什么,去码头整点薯条吗? 就当为了薯条吧,但是现在好多码头都要关了。。。
【回复】回复 @沐麟屿 :生存,编程也好,打螺丝也好,只是在当下社会中选择一种适合自己的生存方式而已。举个极端点的例子,如果哪天地球磁场完全异常,计算机都失效了,编程对我来说就毫无价值了。那我肯定会毫不犹豫换一份工作,或者说一个能活下去的方式。但是你问我生存下去的意义又是什么,我只能告诉你我是虚无主义。
【回复】提升个屁,都是打工混口饭吃,有这时间谈个恋爱不好?
卢恩LENON:
昨天太紧张了,今天思考了一小会写出来了,感谢海哥

【回复】第一个awit相当于控制执行顺序,第二个awit则是等待屏障同步后再进入下一个循环
【回复】其实代码还可以封装下,很多重复代码哈哈[OK]
【回复】我按照你的代码敲了一边, 发现不能结束, 而且只打印了98个
超远三分6:
多线程最基础的基本功,作为笔试题目挺好的。几年前我去实习,让我手写过。

【回复】评论区我直接傻眼[抠鼻]
omoiFly:
只用Semaphore,希望没bug[脱单doge][脱单doge]

【回复】封装的很棒!海哥也学到了[脱单doge]
【回复】回复 @极海Channel :a引用了b,b引用了a,这样写不是可能会内存泄露吗
扎扎辉同学:
海哥我这个可以吗海哥,如果要先打印B就把信号量改一下,A的变0,B的变1

【回复】[脱单doge]我觉得你这个答案很好,执行结束后,两个线程都正常结束了,并且很轻易的改动代码做到先打印b后打印a 见评论里面其他的代码虽然实现了ab交替打印,但是最后就有一个线程阻塞死了,main线程没法正常结束
【回复】回复 @hairsanity :[哦呼]哦 这个意思 这个要看情况 我的理解是要使用wait/notify实现把握两点就可以 1. 唤醒后一定要检查边界值是否符合条件 2. 自己wait前检查一下是不是需要wait, 第2点 反过来理解就是你说的那种 可以让其他被唤醒的线程在结束条件return前的时候唤醒wait的线程然后再去做边界判断,这样可以无脑写wait,就是多做一次无用唤醒 主要看思路,这位老哥写得好就是代码很巧妙,没有使用空转while的控制a b先后,代码量还少 恕我直言评论区那种使用空转while控制a先b后的和使用sleep控制先后没啥两样[嗑瓜子]
【回复】回复 @极海Channel :[脱单doge]拐个弯就到海哥
koliday:
第一次为一个评论花了25分钟,写了个进阶版的,支持m个元素交替打印,每个元素打印n次,整体思路还是用condition,确实很多细节,还有不太完善的地方,懒得继续设计了 图1. 设计api 图2. 设计属性 图3. 构造函数 图4. 方法 感谢海哥出的题[星星眼]

【回复】回复 @极海Channel :比如呢[思考]
【回复】Java写这种东西看起来好乱
【回复】[妙啊]先不说逻辑 代码规范要注意下
标爷最帅:
海哥,这个咋样,功能上好像没什么问题,关键点就是两个Condition对象的使用

【回复】我的第一反应也是用condition[doge]
【回复】回复 @标爷最帅 :看看我新发的。应该能解决你的问题
【回复】回复 @标爷最帅 : 说错了,不是先打印B,是会打印一个A,然后就死锁了
晨溢_:
[打call][打call][打call],不对会不会打脸[doge]

【回复】回复 @极海Channel :第一个判断进不去吧[脱单doge]
【回复】回复 @其实我想用只猫做头像 :确实会有这个问题把判断是否等于0放到while里就好了,并且在wait之前判断是否等于0后break就可以正常退出了[脱单doge]
【回复】回复 @秦始皇摸电线 : 你不用原子整数怎么保证线程安全?
锋魔剑上缺12:
挺有意思的,虽然还没在实际中使用过

打虎英雄_武松:
ChatGPT除了增加延迟以提高线程A获取锁的机会之外,你还可以使用Java中的其他同步机制,例如Semaphore或CountDownLatch。

【回复】[妙啊]实现的方式很多,评论区太好玩了
偷吃莽莽z:
每个线程打印完字符都多睡0.5秒,就可以不用信号量去做[doge]

每天醒来都在睡觉:
海哥我想问问现在云原生怎么样呢 目前实习在搞这个 一头雾水

benrush:
在很多地方都看到过这个题了,说实话这个感觉是纯纯的为了出题而出题,实际中根本不会用到这种情况,是完全违背多线程本意的一种实现

【回复】回复 @极海Channel : 既然多个线程不能同时干活,为啥不直接用单线程执行呢
【回复】[妙啊]控制线程调度顺序的应用场景很多
【回复】要求线程顺序执行还是有不少场景的吧[笑哭]

程序员 计算机 开发 编程 大厂 互联网 经验 面试 Java 系统设计

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!