我遇到了一个代码,它添加了一个超时0
的计时器:
EventMachine.add_timer(0) {
...
}
这有意义吗?这有用吗?这有什么不同于使用next_tick
?
EventMachine.next_tick {
...
}
答案 0 :(得分: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){..}。
唯一的区别可能是执行顺序,我不知道此时排队的计时器的执行方式。