1

我遇到了一个添加超时计时器的代码0

EventMachine.add_timer(0) {
  ...
}

这有意义吗?这怎么可能有用?这与使用有什么不同next_tick吗?

EventMachine.next_tick {
  ...
}
4

1 回答 1

2

因为我自己是古玩,所以我快速浏览了 Eventmachine 源代码:

http://eventmachine.rubyforge.org/EventMachine.html#run-class_method

我在事件循环中找到了这个:

...
if @next_tick_queue && !@next_tick_queue.empty?
  add_timer(0) { signal_loopbreak }
end
...

这几乎意味着当您在内部定义 next_tick 时,它将使用 add_timer(0) {..} 。

唯一的区别可能是执行顺序,我不确定此时排队的计时器是以哪种方式执行的。

于 2013-04-03T12:04:52.273 回答