贵公司还招人吗?
顶
这待遇福利的确有点过分……
超赞
以下都是执行 10 次的结果 ruby a_test.rb 10
#encoding: utf-8
require '*******' #====drb client 生成的gem
require 'benchmark'
real_time = Benchmark.realtime do
a = ARGV.first
ts = []
t = []
a.to_i.times do |i|
ts << Thread.new(i) do
ti = Benchmark.realtime do
sleep(1)
end
t << ti
end.join
end
p t
sum = t.inject{|s,e| s=s+e}
p sum/t.size
end
p real_time
运行结果为
[1.000672781, 1.000814113, 1.000668882, 1.000586453, 1.000551037, 1.000492891, 1.000694687, 1.000767984, 1.000800398, 1.000598385]
1.0006647611000001
10.01287766 #==>总共耗时10s
所以加了 stop 和 run 操作;but 修改之后如:
#encoding: utf-8
require '*******'
require 'benchmark'
real_time = Benchmark.realtime do
a = ARGV.first
ts = []
t = []
a.to_i.times do |i|
ts << Thread.new(i) do
Thread.stop
ti = Benchmark.realtime do
sleep(1)
end
t << ti
end
end
ts.each &:run
ts.each &:join #有时主线程会一直等待第一个 ts[0]线程的运行 ts[0]没有运行结果所以修改为ts[4..-1].each &:join
p t
sum = t.inject{|s,e| s=s+e}
p sum/t.size
end
p real_time
修改 ts[4..-1].each &:join 之后也会出现等待状态 但是执行成功的几率比较大。结果如下:
[1.001274903, 1.000687374, 1.000907523, 1.001395518, 1.000877703, 1.001985597, 1.002118701, 1.00204419, 1.002451825] ##基本上size为8或者9
1.001527037111111
1.021161041 ##总耗时比较短 所以用了stop操作
我只用于测试一些方法的具体时间(模拟高并发情况下);ts join 会出现等待主线程一直等待状态,请大神解惑
#3 楼 @MrPasserby 效果就是 主线程等待 ts 中所有线程执行完毕之后关闭,ts 中的线程有的不能执行所以 一直等待
#1 楼 @MrPasserby map 和 each 在这应该没区别吧 测试结果大了还是一样
爱旅游 爱极旅行
就地点来说 单纯的赞一个 不太远
打算年后去上海试试呢
小马 貌似招聘已经很久了 不错的一个公司 咋就没人去呢!!在帮赞一个!
顶贴 别沉了!!支持一下
#4 楼 @xiaoma2014 想去……
顶小马
环境不错赞一个。。
view
<img src="/code/code_image" id="code_img" onclick="changeImage()"/>
<script>
function changeImage(){
$("#code_img").attr("src","/code/code_image?tmp="+new Date().getTime())
}
</script>
修改之后即可……
帮顶一下。。。
挺近 要是 去年的这时候我就去了。。。帮顶一下
#3 楼 @kenshin54 #4 楼 @shiny 好的,我尝试一下
不错!
赞一个