我想在 Sinatra 网络服务器的线条里做一个长长的运行 - (大约需要0.5秒执行) 任务 。
网络反应需要大约20毫秒, 所以如果我忙的话, 线就会堆积起来...
所以我在想如果我忙起来 我会做同步...
if (running_thread_count > 10)
stuff_that_takes_a_second()
else
Thread.new do
stuff_that_takes_a_second()
end
end
您如何获得运行线索数( 我要启动线索数, 但尚未完成运行) - 您如何编码运行_ thread_ count?
def running_thread_count
return Thread.list.count
end
或者我需要检查正在运行的线索吗? 也就是说, 当线索运行完成后, 它会停止回到线索列表吗?
我不想呼吁加入,因为这样做会挫败目标——即除非我们有许多工作线索,否则迅速返回。