老哥们,我老大在循环里写 Thread.sleep,到处都这么写,有问题吗

2021-12-01 09:09:24 +08:00
 Aliberter

他为了实现一个定时任务的功能,因为他说 spring 的定时任务不好用,每次跑着跑着就没了,所以想出来这种写个死循环,然后执行一次就休眠一段时间的方法,但是我看 IDE 都会报警告,说禁止在循环里写 Thread.sleep ,我在 stackoverflow 上看了好多解释的帖子,说很浪费资源,发给他看,他之前说这样写不会浪费资源,看了帖子后又说浪费点资源没事,主要是这样实现的定时任务很稳定,求老哥们的意见,这样到底有没有问题?

8521 次点击
所在节点    Java
66 条回复
yaphets666
2021-12-01 09:12:27 +08:00
不管有没有问题,听你领导的就行了,他负总责。
Leonard
2021-12-01 09:12:57 +08:00
不要教老大做事🐶
chir0n
2021-12-01 09:13:12 +08:00
以后性能优化的时候会有用的。
simonlu9
2021-12-01 09:14:39 +08:00
spring 的定时任务不好用,每次跑着跑着就没了,是因为默认配置的线程池只有一个线程,所以有时候执行不了,自己额外配一下线程池就可以了
qwerthhusn
2021-12-01 09:15:28 +08:00
主要看 sleep 多久,如果 sleep 1 秒以上。那线程切换占用的一点 CPU 资源都可以忽略不计了
kop1989
2021-12-01 09:16:01 +08:00
有问题,但是没准更适合你们的场景和成本。
securityCoding
2021-12-01 09:16:06 +08:00
@simonlu9 spring 这个机制的确非常坑
Aliberter
2021-12-01 09:18:14 +08:00
@yaphets666 学会了,老哥职场高人
Aliberter
2021-12-01 09:18:24 +08:00
@Leonard 学到了学到了
rsyjjsn
2021-12-01 09:19:50 +08:00
小心下次分配给你的任务
Aliberter
2021-12-01 09:19:51 +08:00
@chir0n 哈哈哈,懂了,不过性能现在已经很难看了
Aliberter
2021-12-01 09:21:13 +08:00
@simonlu9 这个我也没具体去排查,定时任务线程池应该是有配,但忘了是在他说问题之前还是之后了,总之后来他就很不愿意用这个了
Aliberter
2021-12-01 09:22:20 +08:00
@qwerthhusn sleep 时间挺长的,但我以为这种写到循环里的话,会持续占据资源不会切换呢
polobug
2021-12-01 09:24:22 +08:00
你能解决岂不是更好= =当然你不能解决的话。。那总得用把
shenlanAZ
2021-12-01 09:24:36 +08:00
我的前老大还写过 System.gc(); 呢。

他写的代码让他自己负责,除非要你来全权维护,你可以改成你认为可行的方法。
Aliberter
2021-12-01 09:29:06 +08:00
@polobug 我能解决,我给他提出过 N 多定时任务方案,他看都不看说不能用,就用他写的,属实难顶,所以认了
sagaxu
2021-12-01 09:32:51 +08:00
大佬明年一出手,性能提升十倍,对内 PPT 谈 KPI ,对外分享重构案例
Aliberter
2021-12-01 09:33:51 +08:00
@shenlanAZ 我老大是代码可以是他写,但问题一般要追究到我们头上,他不负责,即使我们说之前是你让这么做的,那么他也会说是你当时听错了,然后当即给你提出一种新的方法,让你去改,就是死活不承认自己有错误这种,就因为这种风格底下已经被气的离职了两个了,现在项目也是一团糟,唉
Aliberter
2021-12-01 09:35:18 +08:00
@sagaxu 哈哈哈 精辟
WytheHuang
2021-12-01 09:36:19 +08:00
@Aliberter #18 这还不提桶跑路, 着实不要脸了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/819192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX