Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 执行某些操作x秒,然后退出_Ruby - Fatal编程技术网

Ruby 执行某些操作x秒,然后退出

Ruby 执行某些操作x秒,然后退出,ruby,Ruby,Ruby中是否有一些块允许我在代码中放入任何东西,比如说5个方法,它们需要花费不同的时间来完成。一旦5秒过去,块应该停止执行其内部的代码。我知道Timeout会启用类似的功能,但我更喜欢在超时由于性能原因而通过时不会引发异常的功能。尝试创建线程,然后在指定的时间后杀死它: t = Thread.new { sleep 1 puts 'after 1' sleep 2 puts 'after 2' sleep 3 puts 'after 3' sleep 4 put

Ruby中是否有一些块允许我在代码中放入任何东西,比如说5个方法,它们需要花费不同的时间来完成。一旦5秒过去,块应该停止执行其内部的代码。我知道Timeout会启用类似的功能,但我更喜欢在超时由于性能原因而通过时不会引发异常的功能。

尝试创建
线程,然后
在指定的时间后杀死它:

t = Thread.new {
  sleep 1
  puts 'after 1'
  sleep 2
  puts 'after 2'
  sleep 3
  puts 'after 3'
  sleep 4
  puts 'after 4'
}

sleep 5
t.kill
输出:

after 1
after 2