经测试,RUBY的线程用在网络这一块还是有点用

当网络阻塞时,虽然RUBY的线程是非原生线程,其作用还是在

[b]服务器端[/b]
用phpg写了一个小页面,软件是用nginx+fastcgi,spawn-fcgi设置-C 为 20,启动20个进程,这样在多线程测试才有效,不然就是一个php cgi进程上面的队列,必须等第一个请求完成,第二个请求才会处理

php页面代码

<?php
sleep(3);
phpinfo();
?>


[b]rub测试端[/b]

require 'open-uri'
s = Time.now
puts s
10.times do
open("http://localhost/index.php")
end
e = Time.now
puts e
puts "no thread #{e -s}"

threads = []
s = Time.now
puts s
10.times do
threads.push(Thread.new{ open("http://localhost/index.php") })
end
while true
threads.each {|t|
if t.alive?
Thread.pass
break
else
threads.delete t
end
}
break if threads.length < 1
end
e = Time.now
puts e
puts "thread #{e -s}"


测试结果,不用线程耗时30秒,启动10个线程,耗时3秒
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值