保证循环至少需要t秒?

时间:2014-03-04 03:59:05

标签: loops time timer

我正在编写代码来查询在线API,这限制了我每10秒可以访问的次数。我想尽可能快地编写代码,这意味着查询非常接近极限。

我想知道是否有任何方法可以保证for循环的迭代花费最少t秒。因此,例如,如果循环内的代码需要n< t秒,然后程序将在再次迭代之前等待t-n秒。

虽然我目前正在使用Julia,但我对C ++,Python或Java的解决方案持开放态度。此外,如果有其他语言更容易,我总是愿意学习。

2 个答案:

答案 0 :(得分:1)

许多语言都有getTickCount()getFrequency()sleep(ms)函数 - 您可以非常轻松地将它们串在一起:

while (doMoreQueries) 
{
   startTick = getTickCount();

   // send query, do other things

   remainingMs = 10000 - (getTickCount() - startTick) * 1000 / getFrequency();
   sleep(remainingMs);
}

虽然我不熟悉Julia,但在C ++中你可以使用chrono中的一些功能,sleep function like this

答案 1 :(得分:1)

或朱莉娅......

while (some_condition)
  start_time=time()
  # do your stuff
  sleep(max(0,10-(time()-start_time)))
end