这样加线程。。。。真的合适吗?
1
wizardforcel 2016-08-11 10:29:51 +08:00
没那么多核也没用啊。
|
2
jimzhong 2016-08-11 10:29:56 +08:00
对于运算密集型的场合一般是不合适的
|
3
UnisandK 2016-08-11 10:30:42 +08:00
这是给太湖之光在写程序吗
|
4
feilaoda 2016-08-11 10:31:16 +08:00
不合适
除非你机器 nb 的不行 |
5
wander2008 2016-08-11 10:32:07 +08:00 via iPhone
这么说的,对多线程理解比较初级
|
6
sarike 2016-08-11 10:34:00 +08:00
同时在加 500 个核,是好使的。
|
7
tabris17 2016-08-11 10:34:20 +08:00 2
建议总线程数=CPU 内核数*2+1
|
8
mko0okmko0 2016-08-11 10:35:51 +08:00 3
最佳公式不是相同任务的线程=((cpu 核心数量 x2)+1)吗?
线程太多切换线程本身就有虚耗. |
9
qzy168 2016-08-11 10:44:25 +08:00
啥服务器有那么多线程呀?云计算吗?
|
10
zhuangzhuang1988 2016-08-11 10:48:23 +08:00
先 visutalstudio 性能分析一下..
|
11
domty 2016-08-11 10:49:09 +08:00
没用吧,核心不够多线程间切换的开销反而更浪费资源
|
14
harry890829 2016-08-11 11:01:41 +08:00
为什么不是用多进程……
|
15
zmj1316 2016-08-11 11:10:16 +08:00
遇到过大量加线程性能提升的现象,最后发现其实是线程负载不均衡,先结束的线程在等待,所以疯狂加效果显著,虽然切换损失也很大。最后把负载均衡就正常了,建议跑个 profiler 看看
|
16
em70 2016-08-11 11:12:58 +08:00 1
饭不够吃?再给你拿双筷子吧
|
17
hush 2016-08-11 11:15:18 +08:00
1 个女人怀胎 10 月生一个小孩, 10 个女人怀 1 个月就能生了么
|
18
ArthurKing 2016-08-11 11:20:30 +08:00
线程不是越多越好,也不是绝对的跟 cpu 核数相关。在考虑开多少个线程时,最重要的一个因素就是资源争用度。
|
19
justfly 2016-08-11 11:29:21 +08:00
不是 IO 密集的,加线程起副作用; IO 密集的,线程数量也不是越多越好,有一个最佳值,要看具体业务。
PS : Java 的 web 生态里面貌似并没有意愿使用 单线程或少量线程 + IO 多路复用 的策略来提高资源利用率,很奇怪。 |
20
ZE3kr 2016-08-11 11:45:28 +08:00 via iPhone
@just4test 应该是线程数=核数就够了,不过一些芯片已经能超线程了能跑的线程就是核数*2 ,当线程到这个数量速度才最快。
|
21
21grams 2016-08-11 11:56:06 +08:00 via Android
要看具体场景,不见得就没用
|
22
zwh8800 2016-08-11 12:04:04 +08:00
对于 io 密集的任务,这样是可行的。运算密集的就得跟核数相关了。
|
24
SlipStupig 2016-08-11 12:21:05 +08:00
首先要看算什么任务,如果是运算密集型不会有丝毫的作用, IO 密集型是有帮助的,线程本质是强占 CPU 时间,但是 CPU 本身要切换线程的话,需要更多消耗内核资源,这个时候线程切换时间会特别长,内核维护线程的列表会更大,在机器不够强的时候可能连正常运行都成问题
|
26
coldear 2016-08-11 12:37:16 +08:00
先 profile ,找瓶颈
|
27
yxaaa123 OP 现在程序启动后有 700 多个线程, Redis Client 有 600 。。。。不知道说啥好, php 程序员写 java 就会这样,遇到好几个了
|
28
jhaohai 2016-08-11 13:14:50 +08:00 via iPhone
如果是阻塞式的加线程可能有用
|
29
seeker 2016-08-11 13:18:50 +08:00
楼上都跑偏了,楼主其实是吐槽外行老板 or 甲方。
|
30
jasontse 2016-08-11 13:21:57 +08:00 via iPad
看 CPU 利用率和线程阻塞时长
|
32
iyangyuan 2016-08-11 19:05:48 +08:00 via iPhone
也不一定没用,最起码抢占 CPU 的竞争力加强了
|
33
petelin 2016-08-11 20:26:10 +08:00 via Android
@SlipStupig 系统启动的时候就已经有那么多线程了,对于阻塞很强的多开十几个没事吧?
|
34
williamx 2016-08-11 21:09:21 +08:00
是不是合适得看实际的情况。
|
35
SlipStupig 2016-08-11 22:18:12 +08:00
@petelin 只要你线程切换不频繁就没事
|
36
jimages 2016-08-11 23:50:52 +08:00 via Android
读写的慢?分成 500 个文件。
|
37
8023 2016-08-12 09:18:10 +08:00
“处理的慢?那再加 500 台电脑!”
|
38
yzl0208994 2016-08-12 09:21:07 +08:00
如果 IO 密集型似乎可以,如果是 CPU 密集型就变慢了
|