作者wwwc (郭大维老师大好人)
看板Ruby
标题Re: [问题] 关於Thread
时间Thu Nov 1 13:28:50 2007
※ 引述《wwwc (郭大维老师大好人)》之铭言:
: 环境:
: ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]
: 状况:
: 爬文得知ruby没有native thread,但必须做类似下列的工作,
: 却发生非预期性的结果
: 附录:
其实我要做的事情比较像这样
server = TCPServer.new(ip, port)
a = 0
t = Thread.new{
#计算accept的次数
while server.accept
a += 1
end
}
while a < 50
end
#当accept次数大於等於50後才执行的code
while a < 60
end
#当accept次数大於等於60後才执行的code
最後补不补t.join都无所谓
要补也行
希望描述得够清楚
先谢谢各位!
: 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