作者kuro44776 (羽岚)
看板java
标题[问题] 使用thread但是执行时间没有缩短
时间Thu Jul 5 17:00:59 2012
http://ideone.com/hHYoX
以上是我的程式 目的是为了从一个ArrayList中取得数值
然後全部做加总起来
可是我把thread数量从1改成4後
执行时间不但没有缩短反而还增加了...
是因为我都从同一个阵列中取值的关系吗?
补充:电脑是4核心的,所以我认为宣告4个thread可以让速度达到最快
不知道这个观念是不是正确的?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.152.62
1F:推 LaPass:看不太懂你想干什麽,有些地方的程式逻辑好像有错的样子 07/05 17:21
2F:→ kuro44776:哪边不懂 07/05 17:23
3F:推 hijamoya:几核心跟几个THREAD一点关系都没有 07/05 17:34
4F:→ risker760915:中间还有一个JVM,要看JVM怎处理吧... 07/05 17:41
5F:推 LaPass:"听说"JVM只能跟WINDOWS拿到一条..... 我不太不确定 07/05 17:52
6F:→ kuro44776:我是在linux下写的... 07/05 18:01
7F:→ cyberwizard:run()里面的程式码跟你要做的事情不一致,时间不能比 07/05 18:13
8F:推 LaPass:程式逻辑没错,是我看错了 囧 07/05 19:13
9F:推 LaPass:我猜... 时间是浪费在建立执行绪跟同步上了.... 07/05 23:34
10F:→ LaPass:同步跟建立执行绪的成本,还蛮高的... 07/05 23:36
11F:→ kuro44776:我刚刚把程式移到16核心的电脑上跑 也都没有变快= = 07/06 00:10
12F:→ kuro44776:为了这鸟问题花了一整天= = 07/06 00:12
13F:推 pupuliao:只能证明 无法真的多执行序 07/06 00:48
14F:→ qrtt1:跑了一下 72 ms 蛮快的啊 (笑) 07/06 01:26
15F:→ bitlife:你的回圈数太少,先加到让程式执行至少要数十秒再来比较 07/06 06:54
16F:→ qrtt1:主要是内容物太弱了。做事的时间可能都不如抢lock多。 07/06 07:40
17F:→ cyberwizard:看错 +1 =.= 07/06 10:05
19F:→ kuro44776:我把loop里面的做的事情变复杂後 时间就真的缩短了 哈哈 07/06 13:00