“处理的慢?那再加 500 个线程!”

2016-08-11 10:28:16 +08:00
 yxaaa123

这样加线程。。。。真的合适吗?

6753 次点击
所在节点    Java
38 条回复
21grams
2016-08-11 11:56:06 +08:00
要看具体场景,不见得就没用
zwh8800
2016-08-11 12:04:04 +08:00
对于 io 密集的任务,这样是可行的。运算密集的就得跟核数相关了。
cocalrush
2016-08-11 12:19:09 +08:00
@zwh8800 正解
SlipStupig
2016-08-11 12:21:05 +08:00
首先要看算什么任务,如果是运算密集型不会有丝毫的作用, IO 密集型是有帮助的,线程本质是强占 CPU 时间,但是 CPU 本身要切换线程的话,需要更多消耗内核资源,这个时候线程切换时间会特别长,内核维护线程的列表会更大,在机器不够强的时候可能连正常运行都成问题
DRcoding
2016-08-11 12:36:16 +08:00
@hush 但是你要是想生 10 个猴子,一个女人得生 10 次,但是你也可以让 10 个女人同时怀上生一次,:)
coldear
2016-08-11 12:37:16 +08:00
先 profile ,找瓶颈
yxaaa123
2016-08-11 13:07:56 +08:00
现在程序启动后有 700 多个线程, Redis Client 有 600 。。。。不知道说啥好, php 程序员写 java 就会这样,遇到好几个了
jhaohai
2016-08-11 13:14:50 +08:00
如果是阻塞式的加线程可能有用
seeker
2016-08-11 13:18:50 +08:00
楼上都跑偏了,楼主其实是吐槽外行老板 or 甲方。
jasontse
2016-08-11 13:21:57 +08:00
看 CPU 利用率和线程阻塞时长
yxaaa123
2016-08-11 13:26:36 +08:00
@seeker 是的。。
iyangyuan
2016-08-11 19:05:48 +08:00
也不一定没用,最起码抢占 CPU 的竞争力加强了
petelin
2016-08-11 20:26:10 +08:00
@SlipStupig 系统启动的时候就已经有那么多线程了,对于阻塞很强的多开十几个没事吧?
williamx
2016-08-11 21:09:21 +08:00
是不是合适得看实际的情况。
SlipStupig
2016-08-11 22:18:12 +08:00
@petelin 只要你线程切换不频繁就没事
jimages
2016-08-11 23:50:52 +08:00
读写的慢?分成 500 个文件。
8023
2016-08-12 09:18:10 +08:00
“处理的慢?那再加 500 台电脑!”
yzl0208994
2016-08-12 09:21:07 +08:00
如果 IO 密集型似乎可以,如果是 CPU 密集型就变慢了

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

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

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

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

© 2021 V2EX