[問題] 關於Thread
環境:
ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
狀況:
爬文得知ruby沒有native thread,但必須做類似下列的工作,
卻發生非預期性的結果
附錄:
a = 0
start = Time.new
t = Thread.new{
while a < 10000000
a += 1
end
}
while(a < 5000000)
#p a
end
puts Time.new - start
#a >= 5000000後的code
輸出的結果大約是6.2秒
但若將第二個迴圈內的註解拿掉
也就是改成
while(a < 5000000)
p a
end
其他維持原狀
輸出的結果竟然是3.2秒
反而快了3秒!?
有什麼合理的解釋嗎?
因為希望等到a >= 5000000後再繼續執行下面的工作
所以才讓他跑空迴圈...
該怎麼改能更有效率的達到上述要求?
小弟是ruby新手
請不吝賜教
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.23.118
※ 編輯: wwwc 來自: 140.109.23.118 (11/01 10:09)
推
11/01 10:17, , 1F
11/01 10:17, 1F
推
11/01 10:21, , 2F
11/01 10:21, 2F
推
11/01 12:33, , 3F
11/01 12:33, 3F
→
11/01 12:37, , 4F
11/01 12:37, 4F
推
11/01 13:11, , 5F
11/01 13:11, 5F
→
11/01 13:55, , 6F
11/01 13:55, 6F
推
11/01 14:58, , 7F
11/01 14:58, 7F
推
11/01 15:51, , 8F
11/01 15:51, 8F
→
11/01 15:52, , 9F
11/01 15:52, 9F
推
11/01 17:46, , 10F
11/01 17:46, 10F
→
11/01 17:46, , 11F
11/01 17:46, 11F
→
11/01 17:47, , 12F
11/01 17:47, 12F
推
11/01 17:56, , 13F
11/01 17:56, 13F
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章