ruby - Ruby 中的限时计算

标签 ruby multithreading

我想在 Ruby 中运行一个任务最多(比如说)10 秒,如果它花费的时间更长,则终止该任务。这是为了防止挂起外部进程。实现这个的最好方法是什么?具体来说,我将如何编写下面的函数 for_up_to_10_seconds

loop do
  for_up_to_10_seconds do
    # something
  end
end

最佳答案

标准库中的 Timeout 类就是您要找的:http://www.ruby-doc.org/core/classes/Timeout.html

loop do
  Timeout.timeout(10) do
    # something
  end
end

关于ruby - Ruby 中的限时计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2271479/

相关文章:

java - 为什么线程中的这个 Java 循环不起作用?

java - 如何让特定线程进入休眠状态()?

ruby - Rspec 测试放置(二维数组)

ruby - 我怎样才能使这个庞大的 Ruby if/elsif 语句更紧凑、更简洁?

javascript - 如何不向 channel 的所有订阅者发送消息

java - 多线程环境下如何解决内存泄漏?

python - 生产者多消费者问题,消费者在生产者完成之前完成工作

android - android 动画总是在 UI 线程中吗?

ruby - 另一种方法而不是转义正则表达式模式?

ruby - 从尾部正斜杠中删除所有内容